自动更新D.O.B列的年龄列

时间:2014-09-01 08:21:19

标签: sql sql-server tsql

自动更新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

1 个答案:

答案 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()