Konwersja do daty z przesunięciem
Oprócz funkcji SWITCHOFFSET() możemy użyć TODATETIMEOFFSET(), aby przekształcić istniejącą datę w typ daty z przesunięciem. Jeśli czas wyjściowy jest w UTC, należy go skorygować o odpowiednią strefę czasową, a następnie dodać przesunięcie. Korekcję strefy czasowej wykonuje się, dodając lub odejmując godziny (i minuty) ręcznie.
Ceremonia zamknięcia Letnich Igrzysk Olimpijskich 2016 w Rio de Janeiro rozpoczęła się o 23:00 UTC, 21 sierpnia 2016 roku. Wychodząc od ciągu znaków zawierającego tę datę i godzinę, możemy sprawdzić, która godzina była wtedy w innych miejscach na świecie. W Phoenix w Arizonie obowiązuje Mountain Standard Time, czyli UTC -7 przez cały rok. Archipelag Tuvalu ma własną strefę czasową – 12 godzin przed UTC.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w SQL Server
Instrukcje do ćwiczenia
- Podaj czas w Phoenix w Arizonie – jako Mountain Standard Time jest to UTC -07:00.
- Podaj czas dla Tuvalu, które jest 12 godzin przed UTC.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;