Stel datums en tijden samen met offsets uit onderdelen
De functie DATETIMEOFFSETFROMPARTS() bouwt een DATETIMEOFFSET op uit componentwaarden. Het heeft de meeste invoerparameters van alle functies die datums en tijden opbouwen.
Op 19 januari 2038 om 03:14:08 UTC (dus 3:14:08 ‘s ochtends) krijgen we te maken met het Year 2038-probleem (of Y2.038K). Dit is het moment waarop 32-bit apparaten teruggezet worden naar de datum 1900-01-01. Dit brengt het risico met zich mee dat elk 32-bit apparaat dat POSIX-tijd gebruikt — het aantal seconden sinds 1 januari 1970 om middernacht UTC — kapotgaat.
Deze oefening maakt deel uit van de cursus
Tijdreeksanalyse in SQL Server
Oefeninstructies
- Bouw een
DATETIMEOFFSETdat de laatste milliseconde vóórdat het Y2.038K-probleem toeslaat weergeeft. De offset moet UTC zijn. - Bouw een
DATETIMEOFFSETdat het moment weergeeft waarop apparaten het Y2.038K-probleem raken in UTC-tijd. Gebruik daarna de operatorAT TIME ZONEom dit om te zetten naarEastern Standard Time.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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;