SQL-запрос для преобразования UTC в местный часовой пояс

Опубликовано: 1 Сентября, 2022

В этой статье мы расскажем, как преобразовать UTC в местный часовой пояс для разного времени UTC в базе данных. Теперь давайте пошагово выполним запрос, который преобразует UTC в местный часовой пояс, используя MSSQL в качестве нашей базы данных.

Шаг 1: Создание базы данных time_converter с помощью следующего SQL-запроса следующим образом.

CREATE DATABASE time_converter;

Шаг 2: Использование базы данных time_converter с помощью следующего SQL-запроса следующим образом.

USE time_converter;

Шаг 3: Создание таблицы времени с 2 столбцами с использованием следующего SQL-запроса следующим образом.

Давайте создадим таблицу с индексом и DATETIME в качестве типа данных.

CREATE TABLE times
(Sno INT,
 date_time DATETIME);

Шаг 4: Чтобы просмотреть описание таблиц в базе данных, используйте следующий SQL-запрос следующим образом.

EXEC sp_columns times;

Шаг 5: Вставка строк в таблицу времен с помощью следующего SQL-запроса следующим образом.

INSERT INTO times VALUES
(1,"2021-03-01 12:00:00"),
(2,"2021-04-01 09:30:00"),
(3,"2021-02-05 10:50:00"),
(4,"2021-04-18 08:50:00");

Шаг 6: просмотр таблицы раз после вставки строк с помощью следующего SQL-запроса следующим образом.

SELECT * FROM times;

Запрос 1: запрос на преобразование текущего времени из UTC в местное IST (индийское стандартное время).

Примечание. Часовой пояс Индии на 5 часов 30 минут опережает UTC.

Синтаксис:

SELECT colum_name,
CONVERT(datetime, 
SWITCHOFFSET(CONVERT(DATETIMEOFFSET, column_name), 
DATENAME(TZOFFSET, SYSDATETIMEOFFSET()))) 
AS general_name
SELECT 
CONVERT(datetime, 
SWITCHOFFSET(CONVERT(DATETIMEOFFSET, GETUTCDATE()), 
DATENAME(TZOFFSET, SYSDATETIMEOFFSET()))) 
AS LOCAL_IST;

Здесь можно использовать функцию GETUTCDATE() для получения текущей даты и времени UTC. С помощью этого запроса UTC преобразуется в местный IST.

Запрос 2: запрос на преобразование всех значений времени в таблице умножения в локальный IST из UTC.

Способ 1:

В этом методе время UTC в таблице преобразуется в местное стандартное индийское время. Чтобы преобразовать UTC в IST, к UTC необходимо добавить «+05:30», то же самое будет добавлено в вывод.

Синтаксис:

SELECT colum_name,
CONVERT(datetime, 
SWITCHOFFSET(CONVERT(DATETIMEOFFSET, column_name), 
DATENAME(TZOFFSET, SYSDATETIMEOFFSET()))) 
AS general_name
FROM table_name;
SELECT date_time,
CONVERT(datetime, 
SWITCHOFFSET(CONVERT(DATETIMEOFFSET, date_time), 
DATENAME(TZOFFSET, SYSDATETIMEOFFSET()))) 
AS LOCAL_IST
FROM times;

Способ 2:

В этом методе разница между текущей датой-временем ( GETDATE() ) и датой-временем UTC ( GETUTCDATE() ) добавляется к датам в столбце date_time.

Синтаксис:

SELECT 
column_name,
DATEADD(MI, DATEDIFF(MI, GETUTCDATE(), GETDATE()), date_time) 
AS LOCAL_IST
FROM times;
SELECT date_time,
DATEADD(MI, DATEDIFF(MI, GETUTCDATE(), GETDATE()), date_time) 
AS LOCAL_IST 
FROM times;