将年龄列更新一年

时间:2015-12-11 18:25:32

标签: sql sql-server sql-server-2012

如何为表格中的每一行仅更新年龄列一年, 那么如何获得该列的年份并将其增加1。

我的数据如下:

ID    name     age
1     sarah    1992-05-26 00:00:00
2     suzan    1991-05-20 00:00:00

2 个答案:

答案 0 :(得分:3)

对于您的具体问题,您可以使用简单的DateAdd

在每个日期添加一年
UPDATE DataTable SET Age = DATEADD(year, 1, Age)

但是,我会将出生日期存储在数据库中,并计算业务层中的年龄或需要显示的位置。

作为参考,如果您确实存储了出生日期,那么可以使用DateDiff函数通过简单查询计算年龄,以计算出生日期和今天日期之间的整年数: / p>

SELECT DT.Name
     , DT.DateOfBirth
     , DATEDIFF(year, DT.DateOfBirth, GETDATE()) As Age
 FROM DataTable DT

答案 1 :(得分:0)

您的查询应如下所示:

Update yourTable set age = DATEADD(yy,1,age)

这将使年增加1