Преобразование в дату со смещением
Помимо SWITCHOFFSET(), для преобразования существующей даты в тип с временны́м смещением можно использовать функцию TODATETIMEOFFSET(). Если исходное время задано в UTC, необходимо скорректировать его с учётом часового пояса и затем добавить смещение. Для корректировки можно вручную прибавить или вычесть нужное количество часов (и минут).
Церемония закрытия летних Олимпийских игр 2016 года в Рио-де-Жанейро началась в 23:00 UTC 21 августа 2016 года. Используя строку с этой датой и временем, определим, который час был в тот момент в других частях света. Время в Финиксе (штат Аризона) соответствует горному стандартному времени — UTC −7 круглый год. Островное государство Тувалу живёт по собственному времени, которое опережает UTC на 12 часов.
Это упражнение является частью курса
Анализ временных рядов в SQL Server
Инструкции к упражнению
- Укажите время в Финиксе (штат Аризона), который живёт по горному стандартному времени — UTC −07:00.
- Укажите время для Тувалу, которое опережает UTC на 12 часов.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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;