我正在使用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查询来做到这一点?
答案 0 :(得分:0)
我不认识Impala,但我假设如果您在其中减去两个日期,则它们之间将有许多天。该代码未经测试,可能现在不适合您。
如果您的new_timestamp
的时间少于23:30
,则应保留new_timestamp
不变,否则应花费new_timestamp
的一天并将其添加到{{ 1}}。最后,您将获得一个时间戳,不得超过23:30
与23:30
类似的过程,但是您会得到一个不少于old_timestamp
的日期
减去两个结果,您将得到两个结果之间的天数,再乘以24,即为小时数。
8:00