Функция SQL Server TODATETIMEOFFSET

В этом руководстве вы узнаете, как использовать функцию SQL Server TODATETIMEOFFSET() для интерпретации значения DATETIME2 по местному времени для указанного часового пояса.

Введение в функцию SQL Server TODATETIMEOFFSET()

Функция TODATETIMEOFFSET() преобразует значение DATETIME2 в значение DATETIMEOFFSET.

Ниже показан синтаксис функции TODATETIMEOFFSET():

TODATETIMEOFFSET(expression,time_zone)

Функция TODATETIMEOFFSET() принимает два аргумента:

  • выражение — это выражение, которое может быть преобразовано в значение DATETIME2.
  • time_zone может быть целым числом или строкой. Это смещение часового пояса в минутах, если вы используете целое число. В противном случае это час и минуты в форме '{+TZH:THM или '-TZH:THM', где TZH — это час, а THM — это минута. Диапазон часов составляет от -14 до +14.

Примеры функции SQL Server TODATETIMEOFFSET()

Давайте рассмотрим несколько примеров использования функции TODATETIMEOFFSET().

A) Пример изменения смещения часового пояса даты и времени с помощью функции SQL Server TODATETIMEOFFSET()

В этом примере смещение часового пояса даты и времени изменяется на -08:00:

SELECT
    TODATETIMEOFFSET(
        '2019-03-06 07:43:58',
        '-08:00'
    ) result;

Вот что получилось:

result
----------------------------------
2019-03-06 07:43:58.0000000 -08:00
(1 row affected)

Б) Использование функции SQL Server TODATETIMEOFFSET() для изменения смещения часового пояса в минутах

В этом примере текущий часовой пояс изменяется на -180 минут:

SELECT 
    TODATETIMEOFFSET(GETDATE(), -180) result;

Ниже показан результат:

result
----------------------------------
2019-03-06 08:34:32.087 -03:00
(1 row affected)

C) Использование функции SQL Server TODATETIMEOFFSET() для добавления указанного часового смещения часового пояса к текущей дате и времени

В следующем примере к дате и времени «2019-03-06 09:55:00» добавляется 12-часовое смещение часового пояса:

SELECT 
    TODATETIMEOFFSET(
        '2019-03-06 09:55:00', 
        '+13:00') 
    result;

Вывод:

result
----------------------------------
2019-03-06 09:55:00.0000000 +13:00
(1 row affected)

В этом руководстве вы узнали, как использовать функцию SQL Server TODATETIMEOFFSET() для возврата значения DATETIME2 в значение DATETIMEOFFSET.

Мирослав С.

Автор статей, ИБ-специалист