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

Jos*_*ody 23 sql sql-server

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

UPDATE TABLE SET NUMBERCOLUMN = NUMBERCOLUMN + 1
Run Code Online (Sandbox Code Playgroud)

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

UPDATE Procrastination SET DropDeadDueDate = DropDeadDueDate + ?
Run Code Online (Sandbox Code Playgroud)

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

其他问题

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

Mat*_*nes 49

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

UPDATE Procrastination SET DropDeadDueDate = DATEADD(yyyy,1,DropDeadDueDate)
Run Code Online (Sandbox Code Playgroud)

编辑:你可以使用year,yyyyyy作为DATEADD的第一个参数.


CAb*_*ott 8

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

UPDATE Procrastination SET DropDeadDueDate = DATEADD(yy, 1, DropDeadDueDate)
Run Code Online (Sandbox Code Playgroud)


Bob*_*Bob 5

UPDATE Procrastination SET DropDeadDueDate = DATEADD(year, 1, DropDeadDueDate)
Run Code Online (Sandbox Code Playgroud)

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