要素からオフセット付きの日時を組み立てる
DATETIMEOFFSETFROMPARTS() 関数は、個々の要素から DATETIMEOFFSET を作成します。これは日付・時刻生成関数の中で最も多くの入力引数を持ちます。
2038年1月19日 03:14:08 UTC(午前3時14分8秒)に、いわゆる Year 2038(Y2.038K)問題が発生します。この瞬間、32ビットのデバイスは日付が 1900-01-01 にリセットされます。これは、POSIX time(1970年1月1日 深夜0時 UTC からの経過秒数)を使用するすべての32ビットデバイスが動作不能になるリスクを伴います。
この演習はコースの一部です
SQL Serverで学ぶ時系列分析
演習の手順
- Y2.038K 問題が発生する直前、最後のミリ秒を表す
DATETIMEOFFSETを作成してください。オフセットは UTC にしてください。 - デバイスが UTC 時刻で Y2.038K 問題に到達する瞬間を表す
DATETIMEOFFSETを作成してください。その後、AT TIME ZONE演算子を使ってこれをEastern Standard Timeに変換しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- Fill in the millisecond PRIOR TO chaos
DATETIMEOFFSETFROMPARTS(2038, ___, ___, ___, ___, 07, 999, 0, 0, 3) AS LastMoment,
-- Fill in the date and time when we will experience the Y2.038K problem
-- Then convert to the Eastern Standard Time time zone
DATETIMEOFFSETFROMPARTS(2038, ___, ___, ___, ___, 08, 0, 0, 0, 3) AT TIME ZONE '___ ___ ___' AS TimeForChaos;