📜  MySQL 中的 CONVERT_TZ()函数

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

MySQL 中的 CONVERT_TZ()函数

MySQL 中的CONVERT_TZ ()函数用于将给定的 DateTime 从一个时区转换为另一个时区。如果参数无效,函数将返回 NULL。

句法 :

CONVERT_TZ (dt, from_tz,to_tz) 

参数:此方法接受三个参数。

  • dt :我们要转换的给定日期时间。
  • from_tz :我们要从中转换 DateTime 的时区。
  • to_tz :我们要转换 DateTime 的时区。

回报:
它在转换为指定的时区后返回 DateTime。

示例-1:

将日期时间从 GMT(格林威治标准时间)转换为 IST(印度标准时间)

SELECT CONVERT_TZ('2020-11-19 19:59:00', '+00:00', '+05:30') 
As IST_TIME;

输出 :

IST_TIME
2020-11-20 01:29:00

示例 2 :

将日期时间从 GMT(格林威治标准时间)转换为 GST(海湾标准时间)

SELECT CONVERT_TZ('2020-11-19 10:53:00', '+00:00', '+04:00') 
As GST_TIME;

输出 :

GST_TIME
 2020-11-19 14:53:00

示例 3 :

CONVERT_TZ函数可用于设置列的值。为了演示创建一个名为 FlightDetails 的表。

CREATE TABLE FlightDetails(
FlightId INT NOT NULL,
Source VARCHAR(20) NOT NULL,
Destination VARCHAR(20) NOT NULL,
DepartureTime DATETIME NOT NULL,
ArrivalTime DATETIME NOT NULL,
PRIMARY KEY(FlightId )
);


现在在 FlightDetails 表中插入值。我们将使用 CONVERT_TZ函数来检查源机场和目的地机场的出发和到达时间。

INSERT INTO  
FlightDetails(FlightId, Source, Destination, 
              DepartureTime , ArrivalTime )
VALUES
(12345, 'New York', 'New Delhi', '2020-11-19 10:53:00',
                                 '2020-11-20 12:53:00');

现在,检查 FlightDetails

SELECT 
FlightId , Source ,Destination , 
DepartureTime  AS DepTimeInEST ,
CONVERT_TZ(DepartureTime, '-05:00', '+05:30') 
As DepTimeInIST ,

ArrivalTime  AS ArrTimeInIST ,
CONVERT_TZ(ArrivalTime , '+05:30', '-05:00') 
As ArrTimeInEST 
FROM FlightDetails;

输出 :

FLIGHTIDSOURCE DESTINATIONDEPTIMEINEST DEPTIMEINISTARRTIMEINIST ARRTIMEINEST
12345  New YorkNew Delhi 2020-11-19 10:53:00 2020-11-19 21:23:002020-11-20 12:53:002020-11-20 02:23:00