如何使用SQL UPDATE语句将1年添加到DATETIME列?

时间:2009-06-04 17:30:32

标签: sql sql-server

我想在表格的每一行中为datetime-type列添加1年。对于数字类型,使用UPDATE语句添加很容易。例如:

UPDATE TABLE SET NUMBERCOLUMN = NUMBERCOLUMN + 1

我想用DATETIME类型做同样的事情......

UPDATE Procrastination SET DropDeadDueDate = DropDeadDueDate + ?

...但我不确定使用什么价值。我可以使用的数字值是“1年”吗?或者SQL Server中是否有DATEADD函数或类似函数?

其他问题

我想这不是针对一个字段,而是针对数据类型'datetime'的数据库中的每个字段。是否有一种简单的方法可以选择“datetime”类型的所有字段并执行添加x年数的更新?我是sql的新手所以请温柔......

6 个答案:

答案 0 :(得分:47)

在T-SQL中实际上有一个DATEADD语句,你可以找到它here

UPDATE Procrastination SET DropDeadDueDate = DATEADD(yyyy,1,DropDeadDueDate)

编辑:您可以使用 yy yyyy 作为DATEADD的第一个参数。

答案 1 :(得分:8)

可以使用像这样的DATEADD()函数来完成:

UPDATE Procrastination SET DropDeadDueDate = DATEADD(yy, 1, DropDeadDueDate)

答案 2 :(得分:4)

UPDATE Procrastination SET DropDeadDueDate = DATEADD(year, 1, DropDeadDueDate)

http://msdn.microsoft.com/en-us/library/ms186819.aspx

答案 3 :(得分:4)

答案 4 :(得分:3)

DateAdd功能可以做你想要的。

UPDATE Procrastination SET DropDeadDueDate = DateAdd(yy, 1, DropDeadDueDate)

答案 5 :(得分:1)

UPDATE Procrastination SET DropDeadDueDate =
DATEADD(yy, 1, DropDeadDueDate)

参考:http://doc.ddart.net/mssql/sql70/da-db_5.htm