更新sql server中的部分日期时间列值

时间:2015-05-22 04:39:21

标签: sql-server

我想在我的SQL server中更新日期时间列。考虑日期时间列包含以下值,

2015-02-13 00:00:00.000
2015-02-18 00:00:00.001
2015-02-21 00:05:00.002
2015-02-13 00:03:00.003
2015-02-19 01:00:00.004
2015-01-13 00:00:00.005
2015-01-11 00:01:00.006
2015-01-13 00:02:00.007

我想将其中的唯一一天更改为14而不对其他值(年,月,时间)进行任何更改。你能帮我写一个更新声明吗?

3 个答案:

答案 0 :(得分:3)

根据您在何处使用DATEADD功能,例如DATEADD(day, 1, column)。这不会影响其他部分。

如果日期部分不同,您可以使用

column = DATEADD(day, 14-DATEPART(day, column), column)

答案 1 :(得分:0)

想要更新只指定日期而不影响HH:MM:SS然后在过滤条件中也使用Substring 假设您的表格如下:

update table 
set datecol = DATEADD(DAY,1,DATECOL) 
where 
datecol = SUBSTRING(DATECOL,0,CHARINDEX(' ',DATECOL))

答案 2 :(得分:0)

update table1 
set column1 = dateadd(dd,14, convert(datetme, CONVERT(VARCHAR(25), DATEADD(dd, -(DAY(column1)-1),column),101),112))