SQL Server (2008+) でフィールドの現地時間の曜日名を取得する最良の方法は何ですか? これを行うための許容可能なアプローチはありますかDATETIMEOFFSET
? DATENAME(DW, DATEADD(mi, DATEPART(tz, @dt), @dt))
うまくいくようですが、もっと良い方法はありますか?
-- this is a Tuesday in London but still a Monday in PST
declare @dt datetimeoffset = '2016-4-12 01:14:00.00000 -08:00'
select TOP(1)
DATENAME(DW, @dt),
DATENAME(DW, DATEADD(mi, DATEPART(tz, @dt), @dt)),
DATENAME(DW, CAST(@dt AS DATETIME))
結果は
Tuesday, Monday, Tuesday
正解はMonday
です。