MySQL CONVERT_TZ()函数
在MySQL中,CONVERT_TZ()函数的作用是将一个日期时间值从一个时区转换成另一个时区,并返回一个新的日期时间值。该函数需要至少三个参数:待转换的日期时间值、待转换的日期时间值的时区、和目标时区。
阅读更多:MySQL 教程
格式
CONVERT_TZ(dt,from_tz,to_tz)
dt
:待转换的日期时间值;from_tz
:待转换的日期时间值的时区;to_tz
:目标时区。
示例
假设有一个名为 sales
的表,其中记录了销售单的发货时间以及发货的时区:
delivery_time | shipping_timezone |
---|---|
2022-01-01 10:00:00 | Asia/Shanghai |
2022-01-01 11:00:00 | America/New_York |
2022-01-01 12:00:00 | Europe/London |
我们想要将这些日期时间值都转换成西雅图时区 (America/Los_Angeles) 的时间,可以使用如下的SQL语句:
SELECT CONVERT_TZ(delivery_time,shipping_timezone,'America/Los_Angeles') AS seattle_delivery_time
FROM sales;
执行上述语句后,返回的结果如下:
seattle_delivery_time |
---|
2021-12-31 18:00:00 |
2022-01-01 08:00:00 |
2022-01-01 04:00:00 |
从上述结果可以看出,所有的日期时间值都已经成功地转换成了目标时区中的日期时间值。
注意事项
- 如果
from_tz
参数为+00:00
、+0:00
、+0000
或UTC
,则被视为是UTC时区。如果没有时区信息,则默认为本地时区。 -
如果
to_tz
参数为+00:00
、+0:00
、+0000
或UTC
,则返回的日期时间值将是UTC时区时间。 -
from_tz
和to_tz
参数接受标准的时区名称或偏移量。例如:America/New_York
或-05:00
。
总结
MySQL的CONVERT_TZ()函数可以将一个日期时间值从一个时区转换成另一个时区,并返回一个新的日期时间值。在使用该函数时,需要注意待转换的日期时间值的时区和目标时区的格式和名称。通过合理使用该函数可以方便地将日期时间转换成任意时区的时间值。(完)