1
MyTable:
 id     int
 Date1  DateTime
 Date2  DateTime

Date2 の日付に影響を与えることなく、Date2 の時刻を Date1 と同じに設定するにはどうすればよいですか?

4

3 に答える 3

3

Date22 つの日付の日数の差のみで更新します。

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 に答える