从各部分构建带偏移的日期和时间
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 中的时间序列分析
练习说明
- 构建一个表示 Y2.038K 问题发生前最后 1 毫秒的
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;