MySQL中的CONVERT_TZ() 函数

AI-摘要
文章摘要 GPT
AI初始化中...
MySQL中的CONVERT_TZ() 函数
EucalyptusCONVERT_TZ() 是 MySQL 中用于在不同时区之间转换时间的函数。它能够将一个时间值从一个时区转换为另一个时区,非常适用于处理跨时区的时间数据。
函数语法
CONVERT_TZ() 的语法如下:
1 | CONVERT_TZ(datetime_expr, from_tz, to_tz) |
datetime_expr:要转换的时间值,可以是DATE、TIME或DATETIME类型。from_tz:源时区,表示datetime_expr所在的时区。to_tz:目标时区,表示要将时间转换到的时区。
官方文档:https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_convert-tz
示例
以下是一些使用 CONVERT_TZ() 的示例:
示例 1:将 UTC 时间转换为北京时间
1 | SELECT CONVERT_TZ('2025-01-01 00:00:00', 'UTC', 'Asia/Shanghai') AS converted_time; |
示例 2:将北京时间转换为 UTC 时间
1 | SELECT CONVERT_TZ('2025-01-01 08:00:00', 'Asia/Shanghai', 'UTC') AS converted_time; |
示例 3:使用时区偏移量
1 | SELECT CONVERT_TZ('2025-01-01 00:00:00', ' 00:00', ' 08:00') AS converted_time; |
示例 4:处理无效输入
如果输入的时间格式不正确,或者时区名称无效,CONVERT_TZ() 将返回 NULL:
1 | SELECT CONVERT_TZ('2025-01-01', 'UTC', 'Invalid/TimeZone') AS converted_time; |
相关时区表
- mysql.time_zone:存储时区的基本信息
- mysql.time_zone_leap_second:存储闰秒信息
- mysql.time_zone_name:存储时区名称与时区 ID 的映射关系
- mysql.time_zone_transition:记录时区转换的时间点和转换类型
- mysql.time_zone_transition_type:存储时区转换的具体规则
注意事项
- 时区表必须已加载:
CONVERT_TZ()函数依赖于 MySQL 的时区表。如果时区表未加载,函数将无法正常工作。可以通过运行以下命令加载时区表:
1 | mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql |
/usr/share/zoneinfo 是 Linux 系统中时区文件的常见路径,具体路径可能因操作系统而异。
官方文档:https://dev.mysql.com/doc/refman/8.4/en/time-zone-support.html
时区名称大小写敏感:时区名称是大小写敏感的,必须与 MySQL 时区表中的名称完全一致。
时区偏移量的限制:时区偏移量的范围是
-14:00到14:00。MySQL 版本要求:
CONVERT_TZ()函数在 MySQL 5.5 及以上版本中可用。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果






















