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

Формирование дат и времени со смещением из частей

Функция DATETIMEOFFSETFROMPARTS() формирует значение типа DATETIMEOFFSET из отдельных компонентов. Среди всех функций для построения дат и времени у неё наибольшее число входных параметров.

19 января 2038 года в 03:14:08 UTC нас ожидает проблема 2038 года (Y2.038K). В этот момент 32-разрядные устройства выполнят сброс к дате 1900-01-01. Под угрозой окажутся все 32-разрядные устройства, использующие время POSIX, — то есть количество секунд, прошедших с 1 января 1970 года в полночь по UTC.

Это упражнение является частью курса

Анализ временных рядов в SQL Server

Посмотреть курс

Инструкции к упражнению

  • Сформируйте значение типа DATETIMEOFFSET, соответствующее последней миллисекунде перед наступлением проблемы Y2.038K. В качестве смещения используйте UTC.
  • Сформируйте значение типа DATETIMEOFFSET, соответствующее моменту наступления проблемы Y2.038K по времени UTC. Затем с помощью оператора AT TIME ZONE преобразуйте его в Eastern Standard Time.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

SELECT
	-- Fill in the millisecond PRIOR TO chaos
	DATETIMEOFFSETFROMPARTS(2038, ___, ___, ___, ___, 07, 999, 0, 0, 3) AS LastMoment,
    -- Fill in the date and time when we will experience the Y2.038K problem
    -- Then convert to the Eastern Standard Time time zone
	DATETIMEOFFSETFROMPARTS(2038, ___, ___, ___, ___, 08, 0, 0, 0, 3) AT TIME ZONE '___ ___ ___' AS TimeForChaos;
Редактировать и запускать код