您的位置:首页 > 数据库 > MySQL

Mysql CONVERT_TZ 函数使用及返回NULL解决方案(时区转换问题)

2017-12-15 17:07 1276 查看
mysql版本:mysql5.6

参考手册:

https://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_convert-tz

一、使用方式:

1.mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
-> '2004-01-01 13:00:00'
2.mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
-> '2004-01-01 22:00:00'


二、一般会遇到的问题:

第一种使用方式有时候会返回NULL,原因是mysql的mysql数据库中没有对应的time_zone表

三、可以参考手册的解决方案:

https://dev.mysql.com/doc/refman/5.6/en/time-zone-support.html#time-zone-installation

1.对于Linux, FreeBSD, Solaris, and OS X系统,可以考虑使用系统的time_zone,目录在/usr/share/zoneinfo下面

在shell中执行:mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -ppassword mysql

即可

2.对于所有系统均可的,下载一个官方time_zone包http://dev.mysql.com/downloads/timezones.html

,在shell或cmd中执行:mysql -u root -ppassword mysql < file_name

上面命令执行完成后,最好重启一下mysql服务;

另外,官方手册还提供了几种方案,有兴趣的同学可以点击上面的链接自己学习

个人博客地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐