從各部分建立含位移的日期與時間
DATETIMEOFFSETFROMPARTS() 函式會把各個組件值組合成 DATETIMEOFFSET。它是所有日期與時間組建函式中,輸入參數最多的一個。
在 2038 年 1 月 19 日 03:14:08(UTC,亦即凌晨 3:14:08),我們將遭遇 2038 年(Y2.038K)問題。屆時 32 位元裝置會重設回 1900-01-01。這可能導致所有使用 POSIX 時間的 32 位元裝置出現故障;POSIX 時間是指自 1970 年 1 月 1 日 UTC 午夜以來經過的秒數。
本練習屬於課程
SQL Server 的時間序列分析
練習說明
- 建立一個
DATETIMEOFFSET,表示 Y2.038K 問題發生前最後一毫秒。位移應為 UTC。 - 建立一個
DATETIMEOFFSET,表示裝置在 UTC 時間觸發 Y2.038K 問題的那一刻。然後使用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;