現地時間の日付をDATETIMEOFFSET
のSQL Server(2008+)のフィールドの最善の方法とするにはどうすればよいですか?これを行うには、DATENAME(DW, DATEADD(mi, DATEPART(tz, @dt), @dt))
は容認できるアプローチですか?それはうまくいくようですが、良い方法がありますか?SQL ServerのDateTimeOffset値のローカルDayOfWeek名を取得する
Tuesday, Monday, Tuesday
で
-- 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))
結果は正解はMonday
です。
datetimeoffsetの値 '' 2016-4-12 01:14:00.00000 -08:00'は、PSTの '' 2016-4-12 01:14 'を意味し、 '' 2016-04- 12 08:14''のロンドンで、どちらも火曜日になるはずです – Eric
@エリックありがとうございました。その時点では、DateTimeOffsetのMSDNのドキュメントは特に曖昧でした。 –