MySQL CONVERT_TZ()函数
MySQL CONVERT_TZ()函数用于将数据从一种时区转换为另一种时区。
阅读更多:MySQL 教程
语法
CONVERT_TZ(dt,from_tz,to_tz)
参数说明
dt
:需要转换的时间值,必选。from_tz
:原始时间值所处的时区,必选。to_tz
:目标时区,必选。
示例:
假设当前系统时区为UTC,有一张Employee表,其中记录了员工名字和加入公司时的时间
CREATE TABLE Employee(
name varchar(50) NOT NULL,
join_time datetime NOT NULL
);
INSERT INTO Employee(name,join_time) VALUES("Jack","2021-08-27 08:00:00");
现在希望将上述记录中的时间值转换为Asia/Shanghai时区的时间,可以使用如下SQL语句:
SELECT name,CONVERT_TZ(join_time,'UTC','Asia/Shanghai') AS join_time FROM Employee;
输出结果如下:
name | join_time |
---|---|
Jack | 2021-08-27 16:00:00 |
通过使用CONVERT_TZ()
函数,系统将原始时间值从UTC时区转换为了Asia/Shanghai时区,将时间值从早上8点转换到了下午4点。
注意事项
from_tz
和to_tz
参数必须是系统中已存在的时区,可以通过执行如下SQL语句查询系统支持的所有时区:SELECT * FROM mysql.time_zone;
CONVERT_TZ()
函数可以与其他日期/时间函数一起使用,例如:SELECT MONTH(CONVERT_TZ(join_time,'UTC','Asia/Shanghai')) AS month_joined FROM Employee;
输出结果为:
month_joined |
---|
8 |
总结
MySQL CONVERT_TZ()函数是用于将数据从一种时区转换为另一种时区的函数,使用该函数时需要注意from_tz和to_tz参数必须是系统中已存在的时区,可以通过执行SQL语句查询系统支持的所有时区。