gpt4 book ai didi

asp.net - 如何每年更新数据库字段

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:43 26 4
gpt4 key购买 nike

我有一个数据库,其中包含 2 个名为 DateOfBirthAge 的字段,分别用于存储用户出生日期和年龄。根据 DOB 匹配服务器日期,我希望 Age 列每年自动递增 1。

实现此目标的最佳方法是什么?我正在使用 asp.netsql server 2008

最佳答案

与其同时存储 DateOfBirthAge,不如创建一个 computed column在计算年龄的表上:

[Age] AS datediff(year,  DateOfBirth, getdate()) 

所以在你的表创建中:

-- Create Table with computed column
CREATE TABLE [dbo].[CCtest]
(
[id] [int] not NULL,
[DateOfBirth] [datetime] NULL,
-- etc...
[Age] AS datediff(year, DateOfBirth, getdate())
)
GO

如果要保留计算值,请添加 PERSISTED 关键字。

一种可能性,如果您希望以年和月显示年龄:

    [AgeInDays] AS datediff(day,  DateOfBirth, getdate()) 

然后在您的表上创建一个 View ,将 AgeInDays 格式化为年和月。

这是另一种可能性,使用 [AgeYears] 的计算列:

create view vwCCtestAge
AS
select
id,
dateofbirth,
cast([AgeYears] as varchar(4)) + ' years ' +
cast(datediff(month, DateOfBirth, getdate())
- case when (AgeYears > 0) then (AgeYears - 1)*12
else 0
end as varchar(4)) + ' months' as Age
from cctest2
GO

[你应该检查边界情况...]

关于asp.net - 如何每年更新数据库字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5414965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com