hive- 18~18区间找最晚批次
开始时间:14:20 15:20 16:20 17:20 19:20
计算【18,18)内的最晚时间
开始时间大于等于18点,开始时间减去18小时; 开始时间小于18点,开始时间加上(24-18)小时
select
from_unixtime(if(unix_timestamp(t0.start_time,'HH:mm') >= 36000,unix_timestamp(t0.start_time,'HH:mm') - 64800
, unix_timestamp(t0.start_time,'HH:mm') + 21600),'HH:mm') as start_time_order
from temp.xx
再根据 start_time_order 排序即可
hive 上unix_timestamp 的用法
unix_timestamp('08:00','HH:mm') 返回 0
unix_timestamp('09:00','HH:mm') 返回3600