当其中一个参数为" +14:00"时,MySQL CONVERT_TZ()返回null。

时间:2015-10-01 16:33:29

标签: mysql timezone convert-tz

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

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

2 个答案:

答案 0 :(得分:4)

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

MySQL does not recognize timezone offset UTC +14:00

答案 1 :(得分:0)

您可以通过使用时区名称而不是偏移来解决此问题。 UTC +14:00等于Pacific/Kiritimati时区。因此,如果您将查询修改为:

select CONVERT_TZ(now(), '+00:00', 'Pacific/Kiritimati')

select CONVERT_TZ(now(), 'UTC', 'Pacific/Kiritimati')

然后您将获得有效日期,而不是NULL

但是有一个条件。您的MySQL引擎需要时区列表。如果上述查询仍然返回NULL,则表示您没有将时区列表加载到您的MySQL引擎中。

请仔细检查此主题以获取更多信息,如何解决此问题:convert_tz returns null

MySQL 5.6.36 中测试。