Tworzenie dat i godzin z przesunięciem na podstawie składowych
Funkcja DATETIMEOFFSETFROMPARTS() buduje wartość DATETIMEOFFSET na podstawie poszczególnych składowych. Spośród wszystkich funkcji służących do tworzenia dat i godzin przyjmuje ona największą liczbę parametrów wejściowych.
19 stycznia 2038 roku o godzinie 03:14:08 UTC doświadczymy problemu roku 2038 (ang. Y2.038K). W tym momencie urządzenia 32-bitowe zresetują się do daty 1900-01-01. Grozi to awarią wszystkich urządzeń 32-bitowych korzystających z czasu POSIX, czyli liczby sekund, które upłynęły od 1 stycznia 1970 roku o północy UTC.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w SQL Server
Instrukcje do ćwiczenia
- Utwórz wartość
DATETIMEOFFSETreprezentującą ostatnią milisekundę przed wystąpieniem problemu Y2.038K. Przesunięcie powinno być ustawione na UTC. - Utwórz wartość
DATETIMEOFFSETreprezentującą moment, w którym urządzenia napotykają problem Y2.038K w czasie UTC. Następnie użyj operatoraAT TIME ZONE, aby przekonwertować tę wartość naEastern Standard Time.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;