📜  将 UTC 转换为本地时区的 SQL 查询

📅  最后修改于: 2022-05-13 01:54:39.596000             🧑  作者: Mango

将 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;