Формирование дат и времени со смещением из частей
Функция 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;