Предполагам, че сте преобразували формата на часа в hh24:mi
може би това може да помогне:
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'
;
или можете да използвате between
за да го проверите start_hour
или end_hour
ist между стойностите
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 тук