我想在表格的每一行中为datetime-type列添加1年。对于数字类型,使用UPDATE语句添加很容易。例如:
UPDATE TABLE SET NUMBERCOLUMN = NUMBERCOLUMN + 1
我想用DATETIME类型做同样的事情......
UPDATE Procrastination SET DropDeadDueDate = DropDeadDueDate + ?
...但我不确定使用什么价值。我可以使用的数字值是“1年”吗?或者SQL Server中是否有DATEADD函数或类似函数?
其他问题
我想这不是针对一个字段,而是针对数据类型'datetime'的数据库中的每个字段。是否有一种简单的方法可以选择“datetime”类型的所有字段并执行添加x年数的更新?我是sql的新手所以请温柔......
答案 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)
答案 3 :(得分:4)
SQL Server有一个DATEADD函数。
http://msdn.microsoft.com/en-us/library/aa258267(SQL.80).aspx
答案 4 :(得分:3)
DateAdd功能可以做你想要的。
UPDATE Procrastination SET DropDeadDueDate = DateAdd(yy, 1, DropDeadDueDate)
答案 5 :(得分:1)
UPDATE Procrastination SET DropDeadDueDate =
DATEADD(yy, 1, DropDeadDueDate)