Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz wartość DATETIMEOFFSET reprezentującą ostatnią milisekundę przed wystąpieniem problemu Y2.038K. Przesunięcie powinno być ustawione na UTC.
  • Utwórz wartość DATETIMEOFFSET reprezentującą moment, w którym urządzenia napotykają problem Y2.038K w czasie UTC. Następnie użyj operatora AT TIME ZONE, aby przekonwertować tę wartość na Eastern 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;
Edytuj i uruchom kod