[Oracle] 오라클 WHERE 절에 날짜 조건 검색 3가지 방법
- 데이터베이스/오라클
- 2023. 12. 10.
오라클의 WHERE 절에서 날짜 조건을 검색하기 위해서는 BETWEEN 연산자와 부등호 연산자를 사용한다. 조회할 날짜 칼럼에 시간이 포함되어 있다면 조건 값에 시간까지 포함해야 누락된 데이터가 없이 조회된다. 아래는 실무에서 날짜를 조회할 때 자주 사용하는 방법이니 참고해서 사용하면 된다.
목차 |
BETWEEN 연산자를 사용하여 날짜 조회
SELECT *
FROM emp
WHERE hiredate BETWEEN TO_DATE('2023-11-01', 'YYYY-MM-DD')
AND TO_DATE('2023-11-30', 'YYYY-MM-DD')
![]() |
WHERE 칼럼 BETWEEN 시작일자 AND 종료일자
입사일이 11월 1일부터 11월 30일까지인 직원을 조회한다.
날짜를 조회할 때는 BETWEEN 연산자를 많이 사용한다.
날짜를 대입할 때는 TO_DATE 함수를 사용하여 날짜형으로 변환 후 입력하는 것을 권장한다.
날짜를 문자열로 입력해도 조회는 되지만 오라클 환경에 따라서 정상적으로 작동하지 않을 수 있다.
부등호(=, >, <) 연산자를 사용하여 날짜 조회
SELECT *
FROM emp
WHERE hiredate = TO_DATE('2023-11-01', 'YYYY-MM-DD')
![]() |
하루 날짜만 조회할 때는 이퀄(=) 연산자를 사용하면 된다.
SELECT *
FROM emp
WHERE hiredate >= TO_DATE('2023-11-01', 'YYYY-MM-DD')
AND hiredate <= TO_DATE('2023-11-30', 'YYYY-MM-DD')
![]() |
WHERE 칼럼 >= 시작일자 AND 칼럼 <= 종료일
→ WHERE 칼럼 BETWEEN 시작일자 AND 종료일자 동일한 결과
부등호 연산자를 사용하여 날짜를 조회할 수 있다. BETWEEN 연산자를 주로 사용하지만 상황에 따라서 부등호 연산자를 사용하여 날짜를 조회하는 경우도 종종 있다.
SELECT *
FROM emp
WHERE hiredate >= TO_DATE('2023-11-01', 'YYYY-MM-DD')
AND hiredate < TO_DATE('2023-11-30', 'YYYY-MM-DD')
![]() |
이퀄(=) 연산자 없이 부등호 연산자만 사용하여 날짜를 검색할 수 있다.
이퀄이 없을 경우 해당일자의 초과, 미만의 데이터가 조회된다.
날짜 칼럼에 시간이 있을 경우 조회 방법 (0.99999)
SELECT *
FROM emp
WHERE editdate BETWEEN TO_DATE('2023-11-01', 'YYYY-MM-DD')
AND TO_DATE('2023-11-30', 'YYYY-MM-DD') + 0.99999
![]() |
조회할 칼럼에 시간까지 포함되어 있다면 0.99999를 더해서 23시 59분 59초까지 조회할 수 있다.
TO_DATE('2023-11-30', 'YYYY-MM-DD') → 2023-11-30 00:00:00
TO_DATE('2023-11-30', 'YYYY-MM-DD') + 0.99999은
TO_DATE('2023-11-30 23:59:59', 'YYYY-MM-DD HH24:MI:SS')와 동일하다.
[Oracle] BETWEEN ~ AND 범위 검색 사용법
오라클에서 쿼리문을 작성하다 보면 가장 많이 사용하는 연산자 중 하나는 BETWEEN일 것이다. BETWEEN은 날짜, 숫자의 범위 검색에 아주 유용하게 사용할 수 있으며, 문자의 범위 검색도 가능하다.
gent.tistory.com
[Oracle] 문자를 날짜로 변환 방법 (TO_DATE)
오라클에서 문자열을 날짜형 데이터로 형 변환을 하기 위해서는 TO_DATE 함수를 사용하면 된다. TO_DATE("문자열", "날짜 포맷") 아래의 예제를 보면 쉽게 이해할 수 있다. SELECT TO_DATE('2021-12-12', 'YYYY-MM
gent.tistory.com