如何利用CONVERT_TZ或AT TIME ZONE在SQL中高效解决时区转换难题?
- 内容介绍
- 相关推荐
本文共计1064个文字,预计阅读时间需要5分钟。
基本原因是时间区域没有正确加载,或者MySQL不识别输入的时间区域名称。例如,使用`CONVERT_TZ(NOW(), 'UTC', 'Asia/Shanghai')`可能会返回`NULL`,因为MySQL可能不知道`Asia/Shanghai`这个时间区域。
检查方式很简单:
SELECT * FROM mysql.time_zone_name LIMIT 5;如果结果为空,说明时区表是空的。这时得手动加载:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql(路径可能因系统而异,/usr/share/zoneinfo 是Linux常见位置;macOS用 /var/db/timezones/zoneinfo;Windows需下载预编译时区SQL文件)。
本文共计1064个文字,预计阅读时间需要5分钟。
基本原因是时间区域没有正确加载,或者MySQL不识别输入的时间区域名称。例如,使用`CONVERT_TZ(NOW(), 'UTC', 'Asia/Shanghai')`可能会返回`NULL`,因为MySQL可能不知道`Asia/Shanghai`这个时间区域。
检查方式很简单:
SELECT * FROM mysql.time_zone_name LIMIT 5;如果结果为空,说明时区表是空的。这时得手动加载:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql(路径可能因系统而异,/usr/share/zoneinfo 是Linux常见位置;macOS用 /var/db/timezones/zoneinfo;Windows需下载预编译时区SQL文件)。

