Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将年龄列更新一年_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

Sql 将年龄列更新一年

Sql 将年龄列更新一年,sql,sql-server,sql-server-2012,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 对于您的具体问题,您可以在每个日期上加上一年,方法简单: 但是,我会将出生日期存储在数据库中,并在业务层或需要显示的任何位置计算年龄 作为参考,如果您确实存储了出生日期,则可以通过使用函数计算出生日期和今天日期之间的整年数的简单

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

我的数据如下所示:

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

对于您的具体问题,您可以在每个日期上加上一年,方法简单:

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

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

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

您的查询应如下所示:

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

这将增加1年,看起来像是一个日期,而不是一个年龄。此外,最好不要存储年龄,因为您必须每天运行更新以确保年龄字段保持正确。当您需要使用DATEDIFF函数查看时,最好计算年龄。
Update yourTable set age = DATEADD(yy,1,age)