springboot数据库插入时间datetime类型的字段不对

2022年6月9日13:17:38

今天mybatis插入数据,有一列是datetime类型,发现代码中获取到的时间都是对的。但是插入之后时间就不对了。
需要在连接参数里加上serverTimezone=Asia/Shanghai或者是GMT%2B8
GMT%2B8实际为GMT+8
springboot数据库插入时间datetime类型的字段不对
原因
如果没有自定义设置,数据库默认使用的时区是系统时区,
当JDBC与Mysql服务器建立连接时,如果我们没有给JDBC指定时区,JDBC就会取Mysql服务器的默认时区,也就是CST,而它又把CST理解成了美国中部时间,结果就使用了美国中部时间的时区,而不是后端系统服务器的时区。

参考资料:
关于数据库与服务器时区的问题
mysql中url时区的陷阱该如何规避详解

  • 作者:temp_44
  • 原文链接:https://blog.csdn.net/temp_44/article/details/123399496
    更新时间:2022年6月9日13:17:38 ,共 301 字。