Modificarea decalajului unei date
Putem folosi funcția SWITCHOFFSET() pentru a schimba fusul orar al unei date de tip DATETIME, DATETIME2 sau DATETIMEOFFSET, ori al unui șir de caractere valid reprezentând o dată. SWITCHOFFSET() primește doi parametri: data sau șirul de caractere ca intrare și decalajul fusului orar. Returnează ora în noul fus orar, astfel că ora 3:00 AM Eastern Daylight Time va deveni ora 2:00 AM Central Daylight Time.
Jocurile Olimpice de Vară din 2016 de la Rio de Janeiro au început la ora 11 PM UTC pe 8 august 2016. Pornind de la un șir de caractere care conține acea dată și oră, putem afla la ce oră a fost acest eveniment în alte locații.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în SQL Server
Instrucțiuni pentru exercițiu
- Completează apelul de funcție corespunzător pentru Brasilia, Brazilia.
- Completează apelul de funcție și fusul orar corespunzătoare pentru Chicago, Illinois. În august, Chicago este cu 2 ore în urma orei standard din Brasilia.
- Completează apelul de funcție și fusul orar corespunzătoare pentru New Delhi, India. India nu aplică ora de vară, astfel că în august, New Delhi este cu 8 ore și jumătate înaintea orei standard din Brasilia. Reține că Brasilia și New Delhi se află pe părți opuse față de UTC atunci când calculezi fusurile orare.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
DECLARE
@OlympicsUTC NVARCHAR(50) = N'2016-08-08 23:00:00';
SELECT
-- Fill in the time zone for Brasilia, Brazil
___(@OlympicsUTC, '-03:00') AS BrasiliaTime,
-- Fill in the time zone for Chicago, Illinois
___(@OlympicsUTC, ___) AS ChicagoTime,
-- Fill in the time zone for New Delhi, India
___(@OlympicsUTC, '+___') AS NewDelhiTime;