Hive剔除某时间段进行时间点判断

业务中,遇到这样一个需求:需要判断在前一个节点业务操作后(取前一节点的操作时间),判断后一节点操作是否在3个小时内完成,其中晚上17:00到第二天早上8:00不纳入计算范围。
思路:首先判断前一节点操作时间是否临近剔除范围,即使用hour函数判断小时+3是否在17:00到第二天早上8:00范围。如果在,后一节点时间-前一节点时间-13进行判断,如果不在用后一节点时间-前一节点时间进行判断。

select
	*
from 
	tableName
where if((hour(前一节点时间)+3>19 or hour(前一节点时间)+3<8),unix_timestamp(后一节点时间)-unix_timestamp(前一节点时间)-13*60*60,unix_timestamp(后一节点时间)-unix_timestamp(前一节点时间)) > 3*60*60

你可能感兴趣的:(work_efficiency,数据库,hive)