问题:
利用mybatis获取数据时,出现datetime 和 timestamp都会出现时间误差,特别是在使用获取时间段这个操作的时候,会出现时间段误差。
解决方案:
因为所有的数据库都不是使用中国时区的,所以我们只需要改数据库的时区到中国。这样我们就能避免插入时出现的时间问题。
set global time_zone = '+8:00';
set time_zone = '+8:00';
flush privileges;
第二个我们要避免的是获取数据的时候,出现的时间误差。我们需要在jdbc连接时设置时区转换useTimezone和指定时区time_zone
jdbc:mysql://0.0.0.0/database?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&useTimezone=true
其中重点是参数设置
useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&useTimezone=true