7

我正在尝试将 UTC 时间转换为用户本地时间,它工作正常,直到我尝试将时间转换为 +14:00 时区,结果始终为空,有人知道吗?这是我的代码:

select CONVERT_TZ(now(), '+00:00', '+14:00')
4

2 回答 2

5

这是 MySQL 中的一个已知错误:

MySQL 无法识别时区偏移 UTC +14:00

于 2015-10-01T16:55:09.957 回答
1

您可以通过使用时区名称而不是偏移量来解决此问题。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上测试。

于 2018-06-05T10:59:35.563 回答