안녕하세요. 고생이 많으십니다. 시간관련하여 질문을 하려고 합니다.
특정기간에 특정시간(점심) 12:00 ~ 13:00 가 포함된 값을 구하고 싶습니다.
우선 쿼리는 이런식으로 짰는데 결과값이 맞지 않는거 같아서.. 한번 봐주시면 감사하겠습니다.
SELECT *
FROM TABLE
WHERE 시작일자 >= TO_DATE('2024-01-01', 'YYYY-MM-DD')
AND 종료일자 <= TO_DATE('2024-04-30', 'YYYY-MM-DD') + 0.99999
AND ((시작시분 BETWEEN '1200' AND '1300') OR (종료시분 BETWEEN '1200' AND '1300'))
아래는 테이블구조 및 데이터 예시입니다.
모두 다 VARCHAR 타입입니다.
| 시작일자 | 시작시분 | 종료일자 | 종료시분 |
| 20240425 | 0900 | 20240425 | 1500 |
| 20240424 | 1000 | 20240424 | 1500 |
| 20240424 | 1300 | 20240424 | 1700 |
| 20240423 | 1200 | 20240423 | 1400 |
| 20240423 | 0800 | 20240423 | 1200 |
| 20240423 | 1230 | 20240423 | 1830 |
| 20240422 | 1000 | 20240422 | 1200 |
시작일과 종료일이 다를 수 있나요? 항상 당일인지?
예시 자료에는 그런 예는 안보이네요.
(예 : 오늘저녁 7시부터 내일 아침 10시까지)
항상 당일입니다.
SELECT * FROM t WHERE 시작일자 BETWEEN '20240101' AND '20240430' AND 시작시분 < '1300' AND 종료시분 > '1200' ;