我将出生日期存储在数据库中,一年后我想增加年龄并更新到数据库中。
答案 0 :(得分:6)
存储出生日期。使年龄成为计算列:
CREATE TABLE [Table](
/* Columns */
[DateOfBirth] [date] NULL,
[Age] AS CASE
WHEN DATEADD(year,-DATEDIFF(year,DateOfBirth,CURRENT_TIMESTAMP),CURRENT_TIMESTAMP) < DateOfBirth THEN
DATEDIFF(year,DateOfBirth,CURRENT_TIMESTAMP) - 1
ELSE
DATEDIFF(year,DateOfBirth,CURRENT_TIMESTAMP)
END,
/* Constraints, etc */
)
这样你就不必自己做任何工作了。
答案 1 :(得分:1)
您可以将年龄作为计算值实施。通过这种方式,查询时的年龄始终是正确的(http://www.mssqltips.com/sqlservertip/1682/using-computed-columns-in-sql-server-with-persisted-values/)