НачатьНачать бесплатно

Изменение смещения даты

Функция 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;
Редактировать и запускать код