tx

wangcx

栖迟於一丘,则天下不易其乐
57,998
MySQL 插入时间错误问题 MySQL 插入时间错误问题

在程序中进行update操作时候,发现插入时间错误,程序执行的sql与本机(北京时间)相差8个小时,而在Navicat直接执行,则不能复现问题,通过搜索得知问题在于jdbc的连接参数上,大多数博客给出的默认jdbc连接参数都类似:

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC

问题出在serverTimezone=UTC这个配置上,UTC简称世界统一时间,比北京早8个小时,如果定义了serverTimezone=UTC,那么在你编译器上执行的SQL语句,会先以UTC时区进行存储,发送到MySQL,然后MySQL以本地时区进行转换,这样就会导致同一段SQL语句,在Navicat直接执行与IDEA执行,结果不同

  • 改为serverTimezone=GMT%2B8,GMT%2B8代表是东八区时间,也就是北京时间
  • 或者serverTimezone=Asia/Shanghai,Asia/Shanghai代表上海时间,上海时间=北京时间=东八区时间
0 条评论
user 编辑评论信息
插入图片

隐私评论

随机一言

:D 获取中...

最新评论

随机文章

为 CloudCone 开启 BBR 加速 2027 浏览 - 2023/12/16
XML 中大于号和小于号的处理 1129 浏览 - 2022/11/30
Mac 下安装 Homebrew 828 浏览 - 2020/05/11
JS 中 JSON 数组转换树形结构 907 浏览 - 2022/04/24
JWT Token 896 浏览 - 2021/01/26