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

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服务;
另外,官方手册还提供了几种方案,有兴趣的同学可以点击上面的链接自己学习

个人博客地址

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值