2014-09-01 64 views
0

自動更新D.O.B專欄的年代專欄。每當sql服務器瀏覽 列應該能夠自行更新。所以我認爲它應該在創建表或修改表時寫入。使用「時間戳」怎麼樣? 。我如何克服?更新時代專欄D.O.B專欄自動

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

不要存儲年齡,有沒必要。你有使用這些信息的應用程序或其他代碼嗎?如果是這樣,你的應用代碼可以解決。否則,如果它僅用於SQL進行報告,則創建一個計算年齡的視圖。沒有必要存儲它。 – Tanner 2014-09-01 08:39:34

回答

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