今天做一个Mysql存储datetime/date类型的数据,但是发现存进去的数据和实际的时间上差了13个小时
原因:
数据库设置的时区不是我当前所在时区。
mysql高版本会出现这个问题,比如8.0
解决办法:
第一种,在配置数据库连接的时候加上serverTimezone=Asia/Shanghai
spring.datasource.url=jdbc:mysql://localhost:3306/operating?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
但是这样子每次做一个项目都要加上这句话,太麻烦,那就用第二种。
第二种,在mysql的配置文件中加上default-time-zone = ‘+8:00’,时区设置为永久生效
default-time-zone = '+8:00’
然后重新启动mysql
你也可以把data类型改成varchar类型存储,治标不治本。