select
tmp.开始,
tmp.结束,
tmp.减小时与不减,
--nvl(instr(tmp.减小时与不减,'.')) as qq,
--substr(tmp.减小时与不减,1,instr(tmp.减小时与不减,'.')-1)+0.5 as tc
case when instr(tmp.减小时与不减,'.')=0 then tmp.减小时与不减
when substr(tmp.减小时与不减,instr(tmp.减小时与不减,'.')+1,1)*1>=5 then substr(tmp.减小时与不减,1,instr(tmp.减小时与不减,'.')-1)+0.5 else
substr(tmp.减小时与不减,1,instr(tmp.减小时与不减,'.')-1)+0 end as 判断
from (
select
t.开始,
t.结束,
round((t.结束-t.开始)*24-1) as 小时,
case when to_char(t.开始,'HH24')*1<=11 and to_char(t.结束,'HH24')*1>=13 then (t.结束-t.开始)*24-1 else (t.结束-t.开始)*24 end as 减小时与不减
from (
select 1655647825000 / (1000 * 60 * 60 * 24)+TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') as 结束,
1655601025000 / (1000 * 60 * 60 * 24)+TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') as 开始
from dual
union all
select 1652963685000 / (1000 * 60 * 60 * 24)+TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') as 结束,
1652954400000 / (1000 * 60 * 60 * 24)+TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') as 开始
from dual
union all
select 1655637745000 / (1000 * 60 * 60 * 24)+TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') as 结束,
1655622625000 / (1000 * 60 * 60 * 24)+TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') as 开始
from dual
) t
) tmp
