问题描述

问题描述/异常栈

写入mysql后时间字段与原来的时间字段不同
1、精度问题  
在数据传输中,时间戳字段精确到秒级。  
在数据库传输中,时间戳字段精确到毫秒级。  
2、时区问题  
在数据库传输中,时区采用默认的本地时区东八区,导入数据正常。  
而数据传输中,任务执行成预编译语句时,时区解析成CST(Central Standard Tim UTC-6),采用美国的中部时区,导入数据相差14个小时。可以在配置数据源信息的时候加上  ?serverTimezone=GMT%2B8 指定本地时区东八区。  
例如:jdbc:mysql://ServerIP:Port/Database?serverTimezone=GMT%2B8

解决方案

1.也可以把连接串修改一下,把时区的参数serverTimezone=GMT%2B8
带上。这样所有用到这个数据源的任务都会生效

2.mysql侧的高级配置添加配置项。keyurlSuffixserverTimezone=GMT%2B8

参考文章:

https://blog.csdn.net/BaideS/article/details/108563785
https://www.google.com/search?q=Spark%E5%92%8C%E6%95%B0%E6%8D%AE%E5%BA%93%E6%97%B6%E9%97%B4%E6%88%B3%E7%9B%B8%E5%B7%AE14%E5%B0%8F%E6%97%B6&oq=Spark%E5%92%8C%E6%95%B0%E6%8D%AE%E5%BA%93%E6%97%B6%E9%97%B4%E6%88%B3%E7%9B%B8%E5%B7%AE14%E5%B0%8F%E6%97%B6&aqs=chrome..69i57j69i61.535j0j1&sourceid=chrome&ie=UTF-8

FAQ-写入mysql后的时间字段和原时间相差n小时 - 图1

问题原因



作者:常惠渊 ```