MySQL插入Date类型数据,时间早8小时解决方案

2022-12-06 13:35:43 浏览数 (1)

前言

最近在学习使用Java整合微信支付,一开始没注意,做了查询超时未支付的订单的定时任务以后,我新创建的订单立马就会被超时关闭,去看了一下数据库的订单信息,时间整整差了8小时,导致我写的逻辑直接被判断超时,我用的数据库是MySQL8.0哈。

然后我就去修改JDBC的链接信息,将时区参数修改成UTC,GMT都没效果。然后我就去根源,去MySQL数据库查看了一下时间,好家伙,数据库的时间直接就是少了8小时的。然后我把数据库的默认时区修改以后重启就好了

解决方案

我的MySQL8.0是直接安装在Docker里面在,所以直接修改了my.cnf [mysqld]全剧配置就好了,如下两种方案 方案二执行完以后记得重启MySQL服务器/容器

代码语言:javascript复制
SELECT NOW();   // 查看当前数据库时间
SHOW VARIABLES LIKE '%time_zone%';  // 查看当前数据库连接使用的时区
SET GLOBAL TIME_ZONE = Asia/Shanghai   // 设置全局时区为Asia/Shanghai
代码语言:javascript复制
[mysqld]
user=mysql
default-time-zone = ' 8:00'

0 人点赞