首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL无法识别时区:澳大利亚/欧几拉(GMT+08:45)

MySQL无法识别时区:澳大利亚/欧几拉(GMT+08:45)
EN

Stack Overflow用户
提问于 2013-06-07 00:08:48
回答 2查看 2.5K关注 0票数 0

我在时区澳大利亚/欧几拉(GMT+08:45)有一个客户。PHP可以很好地识别这个时区,但是当我尝试使用MySQL转换一个日期时,我会得到NULL返回。我将所有的日期存储在GMT+00:00时间,然后转换它们。

下面是一个例子:

代码语言:javascript
复制
SELECT  CONVERT_TZ( '2013-05-04 23:30:00' , '+00:00', '+08:75')
    -> NULL

如果我使用时区名称:

代码语言:javascript
复制
SELECT  CONVERT_TZ( '2013-05-04 23:30:00' , 'UTC', 'Australia/Eucla')
    -> NULL

我的服务器上的MySQL是5.0.96- Community (GPL)

你有什么意见建议?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-07 00:20:22

您需要更新MySQL的时区表。假设此区域位于系统的zoneinfo文件中,则可以使用mysql_tzinfo_to_sql命令更新该区域。您可以在MySQL文档MySQL服务器时区支持中找到详细信息。

如果要查看命令的执行情况,请首先将输出重定向到文件:

代码语言:javascript
复制
mysql_tzinfo_to_sql /usr/share/zoneinfo > zones.sql

然后查看zones.sql文件。一旦您满意,就可以使用以下方法来执行它:

代码语言:javascript
复制
mysql -u root -p < zones.sql
票数 2
EN

Stack Overflow用户

发布于 2015-10-17 10:40:32

您必须手动填充mysql time_zone表,因为默认情况下它们是空的。

代码语言:javascript
复制
shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

一旦加载,您就可以运行例如:

代码语言:javascript
复制
SELECT CONVERT_TZ( order_time,  'Australia/Melbourne',  'Australia/Perth' ) AS converted_time
FROM orders
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16974238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档