我在时区澳大利亚/欧几拉(GMT+08:45)有一个客户。PHP可以很好地识别这个时区,但是当我尝试使用MySQL转换一个日期时,我会得到NULL返回。我将所有的日期存储在GMT+00:00时间,然后转换它们。
下面是一个例子:
SELECT CONVERT_TZ( '2013-05-04 23:30:00' , '+00:00', '+08:75')
-> NULL如果我使用时区名称:
SELECT CONVERT_TZ( '2013-05-04 23:30:00' , 'UTC', 'Australia/Eucla')
-> NULL我的服务器上的MySQL是5.0.96- Community (GPL)。
你有什么意见建议?
发布于 2013-06-07 00:20:22
您需要更新MySQL的时区表。假设此区域位于系统的zoneinfo文件中,则可以使用mysql_tzinfo_to_sql命令更新该区域。您可以在MySQL文档MySQL服务器时区支持中找到详细信息。
如果要查看命令的执行情况,请首先将输出重定向到文件:
mysql_tzinfo_to_sql /usr/share/zoneinfo > zones.sql然后查看zones.sql文件。一旦您满意,就可以使用以下方法来执行它:
mysql -u root -p < zones.sql发布于 2015-10-17 10:40:32
您必须手动填充mysql time_zone表,因为默认情况下它们是空的。
shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql一旦加载,您就可以运行例如:
SELECT CONVERT_TZ( order_time, 'Australia/Melbourne', 'Australia/Perth' ) AS converted_time
FROM ordershttps://stackoverflow.com/questions/16974238
复制相似问题