Zmiana przesunięcia daty
Funkcji SWITCHOFFSET() możemy używać do zmiany strefy czasowej dla dat typu DATETIME, DATETIME2 lub DATETIMEOFFSET, a także dla poprawnych ciągów daty. SWITCHOFFSET() przyjmuje dwa parametry: datę lub ciąg znaków jako dane wejściowe oraz przesunięcie strefy czasowej. Zwraca godzinę w nowej strefie – na przykład 3:00 czasu EDT (wschodniego) zostanie przeliczone na 2:00 czasu CDT (środkowego).
Letnie Igrzyska Olimpijskie 2016 w Rio de Janeiro rozpoczęły się o 23:00 UTC, 8 sierpnia 2016 roku. Mając ciąg znaków zawierający tę datę i godzinę, możesz sprawdzić, która była wtedy w innych miejscach na świecie.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w SQL Server
Instrukcje do ćwiczenia
- Uzupełnij odpowiednie wywołanie funkcji dla Brasilii w Brazylii.
- Uzupełnij odpowiednie wywołanie funkcji i strefę czasową dla Chicago w stanie Illinois. W sierpniu Chicago jest 2 godziny za czasem standardowym Brazylii.
- Uzupełnij odpowiednie wywołanie funkcji i strefę czasową dla Nowego Delhi w Indiach. Indie nie stosują czasu letniego, więc w sierpniu Nowe Delhi jest 8,5 godziny przed czasem standardowym Brazylii. Przy obliczaniu stref czasowych pamiętaj, że Brasilia i Nowe Delhi leżą po przeciwnych stronach UTC.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;