【发布时间】:2015-09-11 06:58:04
【问题描述】:
我正在尝试编写一个 Hive 查询,它将为时间戳值添加 6 小时,然后将其与其他时间戳进行比较。
我使用的方法是使用unix_timestamp()函数转换时间戳,然后将其添加21600秒,使最终值比初始值提前6小时。
hive> select unix_timestamp('2014-11-02 00:58:20') from unix_tmp limit 1;
OK
1414907900
1414907900 + 6*60*60 = 1414929500
hive> select from_unixtime(1414929500) from unix_tmp limit 1;
OK
2014-11-02 05:58:20
我认为小时值应该是06 而不是05。我究竟做错了什么?
此外,另一个观察结果是,并非所有值都如此;对于某些值,上述计算给出了正确的结果。
有没有更好的方法来做小时加法和时间戳比较?
【问题讨论】:
-
基本上是格林威治标准时间的问题..相对于 GTM 的时间为 +1 或更多的时区