Converteren naar een datum-offset
Naast SWITCHOFFSET() kun je TODATETIMEOFFSET() gebruiken om een bestaande datum om te zetten naar een datumtype met een offset. Als onze begintijd in UTC is, moeten we corrigeren voor de tijdzone en vervolgens een offset toevoegen. Om voor de tijdzone te corrigeren, kunnen we handmatig uren (en minuten) optellen of aftrekken.
De sluitingsceremonie van de Zomerspelen van 2016 in Rio de Janeiro begon om 23.00 uur UTC op 21 augustus 2016. Beginnend met een string met die datum en tijd, kun je zien hoe laat het was in andere plaatsen. Voor de tijd in Phoenix, Arizona, weet je dat zij Mountain Standard Time hanteren, wat het hele jaar door UTC -7 is. De eilandengroep Tuvalu heeft een eigen tijd die 12 uur vóór op UTC ligt.
Deze oefening maakt deel uit van de cursus
Tijdreeksanalyse in SQL Server
Oefeninstructies
- Vul de tijd in voor Phoenix, Arizona; omdat dit Mountain Standard Time is, was dat UTC -07:00.
- Vul de tijd in voor Tuvalu, dat 12 uur vóór op UTC ligt.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
DECLARE
@OlympicsClosingUTC DATETIME2(0) = '2016-08-21 23:00:00';
SELECT
-- Fill in 7 hours back and a '-07:00' offset
___(DATEADD(HOUR, -___, @OlympicsClosingUTC), '___') AS PhoenixTime,
-- Fill in 12 hours forward and a '+12:00' offset.
___(DATEADD(HOUR, ___, @OlympicsClosingUTC), '___') AS TuvaluTime;