我知道这听起来很愚蠢,但当我使用
SELECT CONVERT_TZ('2004-01-01 12:00:00','UTC','Asia/Jakarta') AS time
它输出NULL。我在64位的Ubuntu12.04中使用MySQL工作台,它可以在我的其他笔记本电脑/操作系统(也使用MySQL工作台)上工作。
发布于 2013-01-22 16:37:38
如果您还没有将时区表加载到mysql中,就会发生这种情况。
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
MySQL是内置数据库的名称,该数据库保存特定于mysql
的配置数据。
发布于 2013-08-14 01:01:01
我花了一些时间试图找出为什么在接受的答案中运行该命令后(在MySQL的dev站点上也是如此),该命令无法在时区之间转换,例如
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/
,允许使用该命令
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
以完全填充所有预期的时区信息。
这可能是也可能不是我安装的MySQL版本中的错误:
$ mysql --version
mysql Ver 14.14 Distrib 5.6.11, for osx10.6 (x86_64) using EditLine wrapper
我也在STRICT_MODE
中操作。
无论如何,我希望这能为寻找修复方法的人省去一些头疼的事情。
发布于 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');
并检查非空输出。
https://stackoverflow.com/questions/14454304
复制相似问题