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