首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >convert_tz返回null

convert_tz返回null
EN

Stack Overflow用户
提问于 2013-01-22 16:25:58
回答 6查看 50.5K关注 0票数 115

我知道这听起来很愚蠢,但当我使用

代码语言:javascript
复制
SELECT CONVERT_TZ('2004-01-01 12:00:00','UTC','Asia/Jakarta') AS time

它输出NULL。我在64位的Ubuntu12.04中使用MySQL工作台,它可以在我的其他笔记本电脑/操作系统(也使用MySQL工作台)上工作。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-01-22 16:37:38

如果您还没有将时区表加载到mysql中,就会发生这种情况。

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

MySQL是内置数据库的名称,该数据库保存特定于mysql的配置数据。

票数 216
EN

Stack Overflow用户

发布于 2013-08-14 01:01:01

我花了一些时间试图找出为什么在接受的答案中运行该命令后(在MySQL的dev站点上也是如此),该命令无法在时区之间转换,例如

代码语言:javascript
复制
SELECT CONVERT_TZ('2004-01-01 12:00:00','UTC','MET') AS time

事实证明,在OS上有两个文件会导致问题:/usr/share/zoneinfo/Factory/usr/share/zoneinfo/+VERSION

解决方法..。将这些文件临时移动到不同的位置,例如/usr/share/zoneinfo/.bak/,允许使用该命令

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

以完全填充所有预期的时区信息。

这可能是也可能不是我安装的MySQL版本中的错误:

代码语言:javascript
复制
$ mysql --version
mysql  Ver 14.14 Distrib 5.6.11, for osx10.6 (x86_64) using  EditLine wrapper

我也在STRICT_MODE中操作。

无论如何,我希望这能为寻找修复方法的人省去一些头疼的事情。

票数 28
EN

Stack Overflow用户

发布于 2018-01-13 07:08:29

1)在Windows中,C:\Program Files\MySQL\中现在没有其他答案中的任何数据文件夹。

2)在这种情况下,查找C:\ProgramData\MySQL\MySQL Server 5.x\Data\mysql。通常情况下,此文件夹会被隐藏,有时您不会看到C:\ProgramData\

3)更改视图选项卡中的设置以查看隐藏的文件和文件夹,如此处所述https://irch.info/index.php?pg=kb.page&id=133

4)在开始按钮中搜索“服务”,停止MySQL服务。

5)然后解压timezone_2017c_posix.zip,然后复制其中的文件(直接复制文件,而不是复制整个文件夹本身),然后粘贴到C:\ProgramData\MySQL\MySQLServer5.x\Data\mysql\

6)对于MySQL 5.7,timezone_2017c_posix.zip解压后只会给出一个.sql文件,可能解决不了问题。因此,即使您运行的是MySQL 5.7,也请继续下载5.6的压缩文件,并将这些文件复制到C:\ProgramData\MySQL\MySQL Server 5.x\Data\mysql\

7)重启MySQL服务器。要检查CONVERT_TZ ()是否正常工作,请运行此sql查询。

SELECT CONVERT_TZ('2004-01-01 12:00:00','UTC','Asia/Jakarta');并检查非空输出。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14454304

复制
相关文章

相似问题

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