위와 같이 시간 정보가 있습니다. 현재 시간이 위 범위에 속하는 데이타를 조회하려고 합니다.
2번째 행같은 경우는 BETWEEN으로 조회가 되는데 다른것들은 어떻게 하면 조회할 수 있을까요:;
WITH t AS ( SELECT '22:00:00' s_time, '09:00:00' e_time FROM dual UNION ALL SELECT '13:00:00', '17:00:00' FROM dual UNION ALL SELECT '20:00:00', '05:00:00' FROM dual ) SELECT s_time, e_time FROM t WHERE ( s_time <= e_time AND TO_CHAR(sysdate, 'hh24:mi:ss') BETWEEN s_time AND e_time ) OR ( s_time > e_time AND ( TO_CHAR(sysdate, 'hh24:mi:ss') BETWEEN s_time AND '23:59:59' OR TO_CHAR(sysdate, 'hh24:mi:ss') BETWEEN '00:00:00' AND e_time ) ) ;