SQL更新日期时间条目

时间:2013-07-09 10:36:00

标签: sql sql-server database sql-server-2008 tsql

我有一个表格,其中包含两列日期时间格式的日期列表。

现在我要做的是从Column1中提取每个非空日期,为每个值添加一年,然后将其存储到Column2

如下所示,更新后,Column2(带空值的那个)将显示:

2014-07-09 00:00:00.000 
2013-07-30 00:00:00.000 
2013-10-19 00:00:00.000 
2013-10-19 00:00:00.000

enter image description here

语法如何?我是否需要进行选择,然后进行更新?

4 个答案:

答案 0 :(得分:5)

您可以使用DATEADD

UPDATE YourTable
SET Column2 = DATEADD(YEAR, 1, Column1)
WHERE Column1 IS NOT NULL

答案 1 :(得分:3)

UPDATE tbl
SET Column2 = DATEADD(year, 1, Column1)
WHERE Column2 IS NULL AND Column1 IS NOT NULL

那没关系

答案 2 :(得分:2)

UPDATE your_table
SET    column2 = DATEADD(year, 1, column1)
WHERE  column1 IS NOT NULL

答案 3 :(得分:2)

UPDATE tableDates 
SET newDate = DATEADD(year, 1, oldDate) 
WHERE oldDate IS NOT NULL;