मुझे लगता है कि आपने अपना समय प्रारूप 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
मूल्यों के बीच है
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 यहां