同步mysql数据到Oracle,日期类型数据差13个小时的问题解决

同步数据的时候,以为日期类型完全不用动,直接同步就行,结果测试人员说两个日期不一致,同步过来的日期比原mysql数据库的日期晚了13个小时,想到可能是时区的原因导致的。

在mysql数据库中用命令:show variables like '%time_zone%'

查到的结果是:

system_time_zone  CST

time_zone                SYSTEM

去百度查询:

CST可以为如下4个不同的时区的缩写:

美国中部时间:Central Standard Time (USA) UT-6:00

澳大利亚中部时间:Central Standard Time (Australia) UT+9:30

中国标准时间:China Standard Time UT+8:00

古巴标准时间:Cuba Standard Time UT-4:00

 可以看出,美国中部时间和中国标准时间差14个小时,跟13很接近,又查资料得到美国夏季的时间是-5,因此很有可能是因为同步数据的时候采用了美国的时区,导致时间差13个小时。

解决办法:

同步时在数据库连接后加:&serverTimezone=Asia/Shanghai

jdbc:mysql://${mysql.address}:3306/${dbname}?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai

指定mysql的时区为中国的时区,获取到的日期当然就没问题了


版权声明:本文为weixin_47396271原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。