mysql查出来的时间跟数据库相差13/14小时
2021/11/16 2:10:05
本文主要是介绍mysql查出来的时间跟数据库相差13/14小时,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
背景
mysql查出来的时间跟数据库相差13/14小时,写入的时间跟数据库也相差13/14小时。
问题原因
- 查看时区:
在mysql中执行以下命令:
SHOW VARIABLES LIKE '%time_zone%';
查询结果如下:
可以看到时区使用的是 CST,而 CST 是一种混乱的时区。它可以有多种表现:
美国中部时间 Central Standard Time (USA) UTC-05:00 / UTC-06:00 澳大利亚中部时间 Central Standard Time (Australia) UTC+09:30 中国标准时 China Standard Time UTC+08:00 古巴标准时 Cuba Standard Time UTC-04:00
Java和Mysql协商时区时把Mysql的CST时间当成了美国中部时间即UTC-5(美国从“3月11日”至“11月7日”实行夏令时,美国中部时间改为 UTC-05:00,其他时候是UTC-06:00)。我们国家是UTC+08:00 时区,所以差了13/14个小时
解决方法:
- 第一种:
在项目的jdbc配置中,加入时区 &useTimezone=true&serverTimezone=GMT%2B8
示例如下:
jdbc:mysql://主机名:3306/库名?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useTimezone=true&serverTimezone=GMT%2B8
- 第二种:
##修改mysql全局时区为北京时间,即我们所在的东8区 set global time_zone = '+8:00'; flush privileges;
如果使用 set time_zone = '+8:00'; 只会修改当前会话的时区,停止会话就失效。
参考资料:
https://juejin.cn/post/6844903476225376264
这篇关于mysql查出来的时间跟数据库相差13/14小时的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南