事情原由:个人有个开发测试用的阿里云服务器,这几天就要到期了。新注册了一个腾讯云账户,新用户2000多买了一台服务器。3年5M带宽(2核8G内存)。听网上文章说,mysql8性能比mysql5.6强一倍多,正好把之前的项目升级了一下数据库。结果就遇到这个时差问题。特意整理了一下文档。
1. 因为我的开发平台不能只用mysql,需要兼顾oracle数据库。所以我用了方案一。
2. 方案一【我比较喜欢用这种方式】
show variables like '%time_zone%';

- Mysql默认安装就是这2个值。
- Central Standard Time (CST),中央标准时间
- Time_zone 的值为 SYSTEM,表示操作系统所在的时区
- 代码里面对日期型,和时间型分别加上,GMT+8。

- Jdbc的连接串,指定serverTimezone=Asia/Shanghai
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/uadp6?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai

3. oracle的数据库时区设置
在Oracle客户端操作时区,如果显示是东8区。。我们的加注解的代码就不会差8小时。。
-- 查询系统时区和session时区
SELECT DBTIMEZONE, SESSIONTIMEZONE FROM DUAL;

。
本文分享了解决在MySQL 8与Oracle数据库中时区设置导致的时间差异问题。通过调整JDBC连接字符串中的serverTimezone参数,并在Oracle客户端设置正确的时区,确保了跨数据库时间的一致性。
89

被折叠的 条评论
为什么被折叠?



