Supongo que ha convertido su formato de hora a hh24:mi
tal vez esto podría ayudar:
with tab as(
select 'date1' as dat, '09:00' as start_hour, '09:30' as end_hour from dual union all
select 'date1' as dat, '10:30' as start_hour, '11:30' as end_hour from dual union all
select 'date1' as dat, '13:00' as start_hour, '15:00' as end_hour from dual
)
SELECT COUNT(*)
FROM tab
WHERE start_hour <= '09:10' --:new_end_hour
AND end_hour >= '07:00' --:new_start_hour
AND dat = 'date1'
;
o puede usar between
para comprobarlo start_hour
o end_hour
ist entre los valores
with tab as(
select 'date1' as dat, '09:00' as start_hour, '09:30' as end_hour from dual union all
select 'date1' as dat, '10:30' as start_hour, '11:30' as end_hour from dual union all
select 'date1' as dat, '13:00' as start_hour, '15:00' as end_hour from dual
)
SELECT COUNT(*)
FROM tab
WHERE ('09:00' between start_hour and end_hour
or '09:10' between start_hour and end_hour
)
AND dat = 'date1'
;
db<>fiddle aquí