自动更新D.O.B列的年龄列。每当sql server浏览时 该列应该能够自我更新。所以我认为应该在创建表或alter table时编写。那么使用“时间戳”呢? 。我怎么能克服?
Name dob age
aaa 12-JUN-1985
bbb 15-MAY-1991
ccc 23-AUG-2000
表格应为
Name dob age
aaa 12-JUN-1985 28
bbb 15-MAY-1991 22
ccc 23-AUG-2000 13
答案 0 :(得分:5)
您可以创建一个计算年龄的computed column:
ALTER TABLE YourTable
ADD Age AS CAST(DATEDIFF(YEAR, dob, GETDATE()) AS TINYINT)
请注意,此基本年龄计算不准确,它会在一年中呈现不正确的结果。一个好的计算有点复杂,必须考虑日期(可能是闰年),我会把它留给你,或者你可以看一下:How to calculate age (in years) based on Date of Birth and getDate()