2014-09-01 2 views
0

обновить столбец возраста колонкой D.O.B автоматически. всякий раз, когда сервер sql просматривает , столбец должен иметь возможность обновлять себя. поэтому я думаю, что это должно быть написано при создании таблицы или таблицы изменений. как насчет использования «Timestamp»? , как я могу победить?Обновить столбец возраста колонкой 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

ответ

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

Смежные вопросы