MyTable:
id int
Date1 DateTime
Date2 DateTime
如何在不影响Date2日期的情况下将Date2的时间设置为与Date1相同?
答案 0 :(得分:3)
仅使用两个日期之间的天数差异更新Date2
。
UPDATE MyTable
SET Date2 = DATEADD(DAY, DATEDIFF(DAY, Date1, Date2), Date1);
这将保留Date2
的日期部分。
更新:此方法基本上使用Date2
作为参考重建Date1
,仅添加Date1
和Date2
之间的天数差异 - 从Date1
保留TimeStamp。
答案 1 :(得分:1)
这适用于sql server 2008 +
select cast(cast(date2 as date) as datetime) + cast(date1 as time) newdate2
from (select getdate() date2, cast('2012-01-01 20:00' as datetime) date1) a
答案 2 :(得分:0)
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @Date2)) + DATEADD(day, -datediff(day, 0, @Date1), @Date1)