MyTable:
id int
Date1 DateTime
Date2 DateTime
Date2 の日付に影響を与えることなく、Date2 の時刻を Date1 と同じに設定するにはどうすればよいですか?
MyTable:
id int
Date1 DateTime
Date2 DateTime
Date2 の日付に影響を与えることなく、Date2 の時刻を Date1 と同じに設定するにはどうすればよいですか?
Date2
2 つの日付の日数の差のみで更新します。
UPDATE MyTable
SET Date2 = DATEADD(DAY, DATEDIFF(DAY, Date1, Date2), Date1);
これにより、 の日付部分が保持されますDate2
。
更新:このメソッドは基本的に、 を参照としてDate2
使用し、とDate1
の間の日数の差を追加するだけで再構築します- からのタイムスタンプを保持します。Date1
Date2
Date1
これは、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
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @Date2)) + DATEADD(day, -datediff(day, 0, @Date1), @Date1)