Изменение смещения даты
Функция SWITCHOFFSET() позволяет изменить часовой пояс для даты типа DATETIME, DATETIME2 или DATETIMEOFFSET, а также для корректной строки с датой. Функция принимает два параметра: дату или строку и смещение часового пояса. Она возвращает время в новом часовом поясе — например, 3:00 по восточному летнему времени станет 2:00 по центральному летнему времени.
Летние Олимпийские игры 2016 года в Рио-де-Жанейро открылись в 23:00 по UTC 8 августа 2016 года. Используя строку с этой датой и временем, можно определить, который час был в этот момент в других городах мира.
Это упражнение является частью курса
Анализ временных рядов в SQL Server
Инструкции к упражнению
- Вставьте подходящий вызов функции для Бразилиа, Бразилия.
- Вставьте подходящий вызов функции и укажите часовой пояс для Чикаго, штат Иллинойс. В августе Чикаго отстаёт от стандартного времени Бразилиа на 2 часа.
- Вставьте подходящий вызов функции и укажите часовой пояс для Нью-Дели, Индия. Индия не переходит на летнее время, поэтому в августе Нью-Дели опережает стандартное время Бразилиа на 8,5 часов. Обратите внимание, что при расчёте часовых поясов Бразилиа и Нью-Дели находятся по разные стороны от UTC.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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;