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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/951982/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 02:19:36  来源:igfitidea点击:

How can I use a SQL UPDATE statement to add 1 year to a DATETIME column?

sqlsql-server

提问by Joshua Carmody

I want to add 1 year to a datetime-type column in every single row in a table. Adding using an UPDATE statement is easy for numeric types. ex:

我想在表中每一行的日期时间类型列中添加 1 年。对于数字类型,使用 UPDATE 语句进行添加很容易。前任:

UPDATE TABLE SET NUMBERCOLUMN = NUMBERCOLUMN + 1

I'd like to do the same thing with a DATETIME-type...

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

UPDATE Procrastination SET DropDeadDueDate = DropDeadDueDate + ?

...but I'm not sure what value to use. Is there a numeric value I could use that means "1 year"? Or is there a DATEADD function or similar in SQL Server?

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

ADDITIONAL QUESTION

附加问题

I would like to do this for not one field, but for every field in the database of data type 'datetime'. Is there an easy way to select all fields of type 'datetime' and perform an update of adding x amount of years? I am new to sql so please be gentle...

我不想为一个字段执行此操作,而是为数据类型为“datetime”的数据库中的每个字段执行此操作。有没有一种简单的方法来选择“日期时间”类型的所有字段并执行添加 x 年数的更新?我是 sql 新手,所以请温柔...

回答by Matthew Jones

There is in fact a DATEADD statement in T-SQL, you can find it here

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

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

EDIT: You could use year, yy, or yyyyfor the first argument of DATEADD.

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

回答by CAbbott

It could be done with a DATEADD() function like this:

可以使用 DATEADD() 函数来完成,如下所示:

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

回答by Bob

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

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

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

回答by GuiSim

回答by Vincent Ramdhanie

The DateAddfunction should do what you want.

使用DateAdd函数应该做你想要什么。

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

回答by shahkalpesh

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

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

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

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