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

Преобразование в дату со смещением

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