Строки таблицы имеют столбец времени начала и столбца времени окончания.Я ищу любые строки, время которых существует между 15:00 и 16:00.Другими словами, строка должна быть включена, если: (1) ее начало и конец были между 3 и 4, (2) она начиналась до 3 и заканчивалась после 4, (3) она начиналась до 3 и заканчивалась после 3, (4) Это началось до 4 и закончилось после 4. Я попытался добавить следующее условие where, чтобы охватить эти 4 варианта, и это работает, но это занимает очень много времени.Кажется, для этого должен быть лучший код.
Where
(
(
(TO_CHAR(vltecl.Patient_in_ROOM_DTTM, 'HH24:MI:SS') < '15:00:00')
and (TO_CHAR(vltecl.patient_out_ROOM_DTTM, 'HH24:MI:SS') > '16:00:00')
)
or
( (TO_CHAR(vltecl.Patient_in_ROOM_DTTM, 'HH24:MI:SS') < '16:00:00')
and (TO_CHAR(vltecl.patient_out_ROOM_DTTM, 'HH24:MI:SS') > '16:00:00')
)
or
(
(TO_CHAR(vltecl.Patient_in_ROOM_DTTM, 'HH24:MI:SS') < '15:00:00')
and (TO_CHAR(vltecl.patient_out_ROOM_DTTM, 'HH24:MI:SS') > '15:00:00')
)
or
((TO_CHAR(vltecl.Patient_in_ROOM_DTTM, 'HH24:MI:SS') < '16:00:00')
and (TO_CHAR(vltecl.patient_out_ROOM_DTTM, 'HH24:MI:SS') > '16:00:00')
and (TO_CHAR(vltecl.Patient_in_ROOM_DTTM, 'HH24:MI:SS') > '15:00:00')
)
)