我正在尝试将 UTC 时间转换为用户本地时间,它工作正常,直到我尝试将时间转换为 +14:00 时区,结果始终为空,有人知道吗?这是我的代码:
select CONVERT_TZ(now(), '+00:00', '+14:00')
我正在尝试将 UTC 时间转换为用户本地时间,它工作正常,直到我尝试将时间转换为 +14:00 时区,结果始终为空,有人知道吗?这是我的代码:
select CONVERT_TZ(now(), '+00:00', '+14:00')
这是 MySQL 中的一个已知错误:
您可以通过使用时区名称而不是偏移量来解决此问题。UTC +14:00
等于Pacific/Kiritimati
时区。因此,如果您将查询修改为:
SELECT CONVERT_TZ(NOW(), '+00:00', 'Pacific/Kiritimati')
或者
SELECT CONVERT_TZ(NOW(), 'UTC', 'Pacific/Kiritimati')
那么您将获得有效日期,而不是NULL
.
但是有一个条件。您的 MySQL 引擎需要时区列表。如果上面的查询仍然返回NULL
,这意味着您没有将时区列表加载到您的 MySQL 引擎中。
可能您还必须运行以下命令:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
请检查此线程以获取有关加载时区列表的更多信息:convert_tz 返回 null
在MySQL 5.6.36上测试。