时间戳是否以时区存储在 Apache Hive 中



以下讨论似乎表明Hive时间戳具有时区:https://community.hortonworks.com/questions/83523/timestamp-in-hive-without-timezone.html

apache wiki 说:"时间戳被解释为无时区的,并存储为 UNIX 纪元的偏移量。

我指的是:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-TimestampstimestampTimestamps

如果我使用如下代码:

from_unixtime(unix_timestamp(ts_field,'yyyy-MM-dd HH:mm:ss'), 'yyyy-MM-dd HH:mm:ss z') as ts_field_tz

这似乎公开了基础时区值。

短语"无时区">具有误导性; 它实际上意味着...

如果你有 Hive 写入的数据文件,则这些TIMESTAMP值 表示写入数据的主机的本地时区

这是 Impala 文档的摘录——他们非常明确,因为当你需要从 Hive Impala 访问同一个表时,这是一个真正的痛苦,因为与 Hive 相反......

默认情况下,Impala 不使用本地时区存储时间戳, 以避免意外时区问题造成的意外结果。 相对于 UTC 存储和解释时间戳

最新更新