将 UTC 转换为本地时区的 SQL 查询
在本文中,我们将介绍如何将 UTC 转换为数据库中不同 UTC 时间的本地时区。现在,让我们使用 MSSQL 作为我们的数据库,逐步执行一个将 UTC 转换为本地时区的查询。
步骤 1:使用以下 SQL 查询创建数据库 time_converter,如下所示。
CREATE DATABASE time_converter;
第 2 步:使用数据库 time_converter 使用如下 SQL 查询。
USE time_converter;
步骤 3:使用以下 SQL 查询创建具有 2 列的表时间,如下所示。
让我们创建一个以索引和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');
第六步:使用如下SQL查询,查看插入行后的表时间。
SELECT * FROM times;
查询 1:查询将当前时间从 UTC 转换为本地 IST(印度标准时间)
注意:印度的时区比 UTC 早 5 小时 30 分钟。
句法:
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:查询将时间表中的所有时间从 UTC 转换为本地 IST。
方法一:
在这种方法中,表中的 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;
方法二:
在此方法中,当前日期时间 ( 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;