1
MyTable:
 id     int
 Date1  DateTime
 Date2  DateTime

如何在不影响 Date2 日期的情况下将 Date2 的时间设置为与 Date1 相同?

4

3 回答 3

3

仅更新Date2两个日期之间的天数差异。

UPDATE MyTable
SET Date2 = DATEADD(DAY, DATEDIFF(DAY, Date1, Date2), Date1);

这将保留Date2.

更新:Date2此方法本质上是通过使用作为参考进行重构,并且仅添加和Date1之间的天数差异- 保留来自.Date1Date2Date1

于 2012-11-06T20:38:18.330 回答
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
于 2012-11-06T20:37:41.627 回答
0
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @Date2)) + DATEADD(day, -datediff(day, 0, @Date1), @Date1) 
于 2012-11-06T20:37:07.630 回答