根据Impala中的条件计算两个时间戳之间的时差

时间:2020-07-13 14:06:44

标签: sql impala

我正在使用Impala,并且我有一个这样格式化的表:

Connection

我需要做的是每天计算每个ID,NEW_TIMESTAMP和OLD_TIMESTAMP之间的差异(以小时为单位),但仅考虑08:00到23:30之间的时间。 换句话说,这应该是输出:

ID        OLD_TIMESTAMP        NEW_TIMESTAMP
1234      2020-07-01 13:30     2020-07-01 18:00
2364      2020-07-02 07:30     2020-07-02 11:30
5746      2020-07-01 10:00     2020-07-03 12:30
5864      2020-07-10 23:45     2020-07-11 09:00

有什么方法可以通过Impala中的SQL查询来做到这一点?

1 个答案:

答案 0 :(得分:0)

我不认识Impala,但我假设如果您在其中减去两个日期,则它们之间将有许多。该代码未经测试,可能现在不适合您。

如果您的new_timestamp的时间少于23:30,则应保留new_timestamp不变,否则应花费new_timestamp的一天并将其添加到{{ 1}}。最后,您将获得一个时间戳,不得超过23:30

23:30类似的过程,但是您会得到一个不少于old_timestamp的日期

减去两个结果,您将得到两个结果之间的天数,再乘以24,即为小时数。

8:00