DataBase/Oracle

[Oracle] 달의 마지막 날짜 구하기 LAST_DAY 함수

mingmongs 2025. 5. 13. 13:19

title

오라클에서 특정 월의 마지막 날짜(일자)를 구하기 위해서 LAST_DAY 함수를 사용하면 된다.
날짜와 관련된 SQL문을 작성할 때 월 별로 마지막 날짜를 직접 계산하는 것이 번거로운데, 이 때 LAST_DAY 함수를 활용하면 특정 월에 대한 마지막 날짜를 쉽게 구할 수 있다.

 

1) 기본 문법

LAST_DAY(날짜)

: 날짜는 DATE 타입, 문자 타입 둘 다 가능

 

2) 기본 예시

LAST_DAY 함수를 사용하여 이번달에 대한 마지막 날짜를 구하는 예시를 알아보자.

SELECT LAST_DAY(SYSDATE) AS DATE_DAY,
       LAST_DAY(TO_CHAR(SYSDATE, 'YYYYMMDD')) CHAR_DAY
FROM dual;

위 예시를 살펴보면, LAST_DAY 함수의 인자로 DATE 타입과 VARCHAR 타입 둘 다 사용이 가능하고, 결과는 아래와 같다.

img1

결과는 동일하지만, 각 인자의 타입으로 리턴되는 것을 확인할 수 있다.

 

3) 활용 예시

앞선 기본 예시에서 더 나아가, 올해 모든 월에 대한 마지막 날짜를 구하는 예시를 알아보자.

SELECT LAST_DAY(DAY) AS LASTDAY_DATE
FROM (
    SELECT TO_CHAR(SYSDATE, 'YYYY') || LPAD(LEVEL, 2, 0) || '01' AS DAY
    FROM dual
    CONNECT BY LEVEL <= 12
)
ORDER BY DAY;

먼저 SYSDATE 함수를 통해 현재 날짜에 대한 년도를 추출하고, LEVEL CONNECT BY 함수로 1~12월에 대한 날짜를 구한다.
모든 월에 대한 정보를 구한 뒤 LAST_DAY 함수를 통해 각각의 마지막 날짜를 구할 수 있고, 그 결과는 아래와 같다.

img2

 

이렇게 ORACLE의 LAST_DAY 함수를 통해 해당 월의 마지막 일자를 쉽게 구할 수 있고, 실제 쿼리에서 다양하게 활용할 수 있다.

 

 

[reference]
https://gent.tistory.com/470
https://m.blog.naver.com/regenesis90/222204323499