【发布时间】:2020-07-07 17:59:28
【问题描述】:
我们从 src "2019-11-03 01:01:00" 获取时间。 2019-11-03 是夏令时。
可以说这是结束时间。我们在 hive 表 start_time 中有另一列。
推导开始时间的逻辑是:
start_time = (end_time- 3600)
问题##:
当我们在使用unix_timestamp() 的作业执行期间应用相同的逻辑时,结果如下。
Start_time =
select from_unixtime(unix_timestamp('2019-11-03 01:01:00') - 3600 ,'yyyy-MM-dd HH:mm:ss');
+----------------------+--+
| _c0 |
+----------------------+--+
| 2019-11-03 01:01:00 |
+----------------------+--+
还有
End_time = select from_unixtime(unix_timestamp('2019-11-03 01:01:00') ,'yyyy-MM-dd HH:mm:ss');
+----------------------+--+
| _c0 |
+----------------------+--+
| 2019-11-03 01:01:00 |
+----------------------+--+
两者都返回相同的结果。这样我们的start_date=end_date 就不是预期的了。
我们想要End_time = "2019-11-03 00:01:00"
有人可以帮忙吗!
【问题讨论】:
标签: hadoop hive timestamp unix-timestamp dst