Tạo date và time có offset từ các phần
Hàm DATETIMEOFFSETFROMPARTS() tạo một DATETIMEOFFSET từ các giá trị thành phần. Đây là hàm dựng date/time có số lượng tham số đầu vào nhiều nhất.
Vào ngày 19 tháng 1 năm 2038 lúc 03:14:08 UTC (tức 3:14:08 sáng), chúng ta sẽ gặp sự cố Năm 2038 (hay Y2.038K). Đây là thời điểm các thiết bị 32-bit sẽ đặt lại về ngày 1900-01-01. Điều này có nguy cơ làm hỏng mọi thiết bị 32-bit đang dùng thời gian POSIX, tức số giây trôi qua kể từ nửa đêm UTC ngày 1 tháng 1 năm 1970.
Bài tập này là một phần của khóa học
Phân tích chuỗi thời gian trong SQL Server
Hướng dẫn bài tập
- Tạo một
DATETIMEOFFSETbiểu diễn mili-giây cuối cùng trước khi sự cố Y2.038K xảy ra. Offset phải là UTC. - Tạo một
DATETIMEOFFSETbiểu diễn thời điểm các thiết bị gặp sự cố Y2.038K theo giờ UTC. Sau đó dùng toán tửAT TIME ZONEđể chuyển đổi sangEastern Standard Time.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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;