ToB企服应用市场:ToB评测及商务社交产业平台

标题: 时区的坑:数据时间在不同数据库中差8小时、13小时、14小时是怎么回事 [打印本页]

作者: 科技颠覆者    时间: 2024-1-10 05:47
标题: 时区的坑:数据时间在不同数据库中差8小时、13小时、14小时是怎么回事
为什么会同一条数据,会有小时差异

恭喜你,十有八九,就是时区的问题:
首先要明确的是,我们中国的标准时区是东八区,就是世界协调时间(UTC)加上八个小时,也就是UTC+8。
格林尼治标准时间
最坑的是美国时间,因为美国实行的是夏令时,也就是说美国是有两个时区在一天内来回切换,有几个月是西六区,有几个月是西五区

所以,当处理跨国公司,特别是美国的数据时,和我们相差13或14个小时都是正常的
如何处理呢?

很简单,确定好原始库的时区,再确定好目标库的时区,然后处理就可以了。
此时,第二个坑来了,请问,下面这个数据库的时区是哪里?

恭喜你,你获得了4个正确且标准的答案:

说它是美国时间、澳大利亚时间、中国时间、古巴时间,都对!那么这条数据到底是哪个时区呢?
1、直接问客户!
2、根据时间差来算一下。
到了重点了,体现到数据层面,该如何处理呢?
处理方式也很简单:
1、设置数据库时区保持一致
2、写数据时转换一下,比如hive和spark的set spark.sql.session.timeZone=GMT+8; 等
3、简单粗暴,直接加减,就是使用date_add之类的函数,直接把相差的那几个小时加回来或减回来

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4