总结一下。因为mysql数据库未指定所在时区默认为美国中部时间
(UTC-06:00),美国从“3月11日”至“11月7日”实行夏令时,美国中部时间改为 UTC-05:00,与 UTC+08:00 相差 13 小时,冬令时则相差14个小时。所以存储的时候时间就已经有“误差了”。
各位小伙伴使用timestamp类型的时候一定要注意指定时区,不管是在数据库配置指定还是数据库连接的参数设置,一定要指定时区。
serverTimezone=Asia/Shanghai
show variables like ‘%time_zone%’;
set time_zone=’+08:00’;
select now();