2021-04-19
날짜 포맷을 정하는 TO_DATE 메서드와 월별 마지막 날을 알려주는 LAST_DAY 메소드를 이용하면 간단히 월별 데이터를 구할 수 있는데, 그 방법을 알아보자.
-예제
예제로는 SEE_INFO 테이블을 이용해서 사용해도록 하자. 테이블의 내용은 아래와 같다.
- 11월이 생일인 학생들
TO_DATE를 통해서 월의 시작일(1일)과 끝나는날(28일/30일/31일)을 정해주면 간단히 처리된다. LAST_DAY는 날짜형 포맷만 전달받을 수 있기 때문에 TO_DATE로 날짜 포맷으로 바꾸어 준 뒤에 사용하는 것이 조금 더 안전하게 쿼리문을 수행할 수 있다.
SELECT * FROM SEE_INFO WHERE BIRTH
BETWEEN TO_DATE('1990-11-01', 'yyyy-MM-dd') AND
LAST_DAY(TO_DATE('1990-11-01', 'yyyy-MM-dd'));
결과는 아래와 같이 출력된다.
- 6월이 생일인 학생들
날짜만 6월로 바꿔서 하나만 더 살펴보자.
SELECT * FROM SEE_INFO WHERE BIRTH
BETWEEN TO_DATE('1990-06-01', 'yyyy-MM-dd') AND
LAST_DAY(TO_DATE('1990-06-01', 'yyyy-MM-dd'));
마찬가지로 문제없이 해당 월초 부터 말까지의 데이터가 출력되는 것을 확인할 수 있다.
메인 이미지 출처: Photo by Joel Muniz on Unsplash