Функция SWITCHOFFSET SQL-сервера

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

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

Функция SWITCHOFFSET() возвращает DATETIMEOFFSET, измененный с сохраненного смещения часового пояса на новое смещение часового пояса.

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

SWITCHOFFSET( expression, time_zone )   

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

  • выражение — это выражение, которое может быть преобразовано в значение DATETIMEOFFSET.
  • time_zone может быть строкой символов в формате {+|-}TZH:TZM или целым числом минут со знаком. Например, time_zone может быть +08:00, -07:00 или 120.

Функция SWITCHOFFSET() очень удобна для обновления значений в столбце DATETIMEOFFSET.

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

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

Сначала создайте новую таблицу со столбцом DATETIMEOFFSET :

CREATE TABLE dbo.switchoffset_demo(
    dtz DATETIMEOFFSET
); 

Во-вторых, вставьте новое значение DATETIMEOFFSET в таблицу:

INSERT INTO dbo.switchoffset_demo
VALUES('2019-03-06 9:20:00 +07:00'); 

В-третьих, запросите значение из таблицы dbo.switchoffset_demo:

SELECT 
    dtz
FROM 
    dbo.switchoffset_demo;

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

dtz
----------------------------------
2019-03-06 09:20:00.0000000 +07:00
(1 row affected)

В-четвертых, используйте функцию SWITCHOFFSET(), чтобы переключить часовой пояс на -08:00:

SELECT 
    SWITCHOFFSET(dtz, '-08:00') result
FROM 
    dbo.switchoffset_demo; 

Вывод следующий:

result
----------------------------------
2019-03-05 18:20:00.0000000 -08:00
(1 row affected)

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

Мирослав С.

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