Conversia la un tip de dată cu decalaj orar
Pe lângă SWITCHOFFSET(), putem folosi TODATETIMEOFFSET() pentru a transforma o dată existentă într-un tip de dată cu decalaj orar. Dacă ora de plecare este în UTC, va trebui să o corectăm în funcție de zona orară și să adăugăm decalajul corespunzător. Pentru a corecta fusul orar, putem aduna sau scădea ore (și minute) manual.
Ceremoniile de închidere ale Jocurilor Olimpice de Vară din 2016 de la Rio de Janeiro au început la ora 23:00 UTC, pe 21 august 2016. Pornind de la un șir de caractere care conține această dată și oră, putem afla la ce oră a fost acest moment în alte locații. Pentru ora din Phoenix, Arizona, știm că acolo se respectă ora standard a Munților Stâncoși (Mountain Standard Time), adică UTC -7 pe tot parcursul anului. Insulele Tuvalu au propriul lor fus orar, cu 12 ore înaintea UTC.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în SQL Server
Instrucțiuni pentru exercițiu
- Completează ora din Phoenix, Arizona, care, urmând ora standard a Munților Stâncoși, era UTC -07:00.
- Completează ora pentru Tuvalu, care este cu 12 ore înaintea UTC.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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;