sql打印的时间和数据库里面存储的时间不一致问题

问题描述:

在项目操作过程发现了一个时区的问题,问题现象为sql打印的时间和数据库里面存储的时间不一样。后来发现问题原因为mysql的时区为CST。网上搜索了下CST时区,才发现这个时区已经被诟病已久。它居然能够表示四种时区,分别为:

  • 美国中部时间 Central Standard Time (USA) UTC-06:00

  • 澳大利亚中部时间 Central Standard Time (Australia) UTC+09:30

  • 中国标准时 China Standard Time UTC+08:00

  • 古巴标准时 Cuba Standard Time UTC-04:00

修改mysql的时区也有两种方式

  1. 通过客户端连接mysql,通过命令设置时区

可以先查看当前时区:show variables like ‘%time_zone%’;

mysql> show variables like '%time_zone%';

进行修改

set global time_zone = ‘+8:00’; (修改mysql全局时区为北京时间,也就是我们所在的东8区)

set time_zone = ‘+8:00’; (修改当前会话时区)

flush privileges; (立马生效)

  1. 当然,也可以通过修改配置文件(my.cnf)的方式来实现配置,不过需要重启服务。

在[mysqld]区域中加上

vim /etc/my.cnf

default-time_zone = '+8:00'

重启mysql使新时区生效

/etc/init.d/mysqld restart

posted @ 2023-04-13 10:10  星期一天气晴我离开你  阅读(55)  评论(0编辑  收藏  举报