본문 바로가기
Database/Oracle

[ORACLE] LAST_DAY() 사용법 정리 : 월 마지막 날 자동 계산 방법

by Papa Martino V 2025. 6. 5.
728x90

오라클 LAST_DAY() 사용법 정리: 월 마지막 날 자동 계산 방법
[Oracle] LAST_DAY

 

오라클 SQL에서 해당 월의 마지막 날짜를 손쉽게 구하는 방법은 바로 LAST_DAY() 함수를 사용하는 것입니다. 본 글에서는 해당 함수의 문법, 예제, 실무 적용 사례, 주의사항 등을 상세히 소개합니다. 

1. LAST_DAY() 함수란?

LAST_DAY(date) 함수는 입력한 날짜가 속한 해당 월의 마지막 날을 반환합니다. 매우 직관적이고, 마감일 계산이나 월 단위 데이터 처리 시 유용하게 활용됩니다.

기본 문법

LAST_DAY(날짜)

예제 1: 기본 사용법

SELECT LAST_DAY(DATE '2025-06-10') AS end_of_month FROM dual;
-- 결과: 2025-06-30

예제 2: SYSDATE 기준 월말 구하기

SELECT LAST_DAY(SYSDATE) AS current_month_end FROM dual;

2. 다양한 날짜 유형에서 활용

LAST_DAY는 DATE 타입뿐 아니라 TIMESTAMP 타입에도 사용할 수 있으며, TO_DATE, TO_TIMESTAMP와 함께 자주 활용됩니다.

예제 3: 문자열 날짜 변환 후 사용

SELECT LAST_DAY(TO_DATE('2025-02-15', 'YYYY-MM-DD')) FROM dual;
-- 결과: 2025-02-28 (윤년이 아닌 해)

예제 4: 윤년의 2월 처리

SELECT LAST_DAY(DATE '2024-02-01') AS last_day FROM dual;
-- 결과: 2024-02-29

3. 실무 활용 예제

3-1. 월별 급여 지급일 계산

SELECT employee_id,
       LAST_DAY(payment_date) AS salary_day
FROM payrolls;

3-2. 회계 마감일 자동 계산

SELECT accounting_period,
       LAST_DAY(TO_DATE(accounting_period, 'YYYY-MM')) AS closing_date
FROM ledger;

3-3. 월말 재고 기준 추출

SELECT product_id, stock_qty, record_date
FROM inventory
WHERE record_date = LAST_DAY(record_date);

4. TRUNC, ADD_MONTHS와 조합하기

LAST_DAY는 TRUNC(), ADD_MONTHS() 등과 함께 사용하면 더욱 유용합니다.

예제 5: 이번 달 마지막 날과 다음 달 첫날 구하기

SELECT 
  LAST_DAY(SYSDATE) AS this_month_end,
  TRUNC(ADD_MONTHS(SYSDATE, 1), 'MM') AS next_month_start
FROM dual;

5. 오류 방지 체크리스트

  • 입력값은 DATE 또는 TIMESTAMP 형식이어야 함
  • VARCHAR 타입은 반드시 TO_DATE()로 변환 후 사용
  • 타임존 정보가 포함된 경우 변환 정확도에 유의

6. LAST_DAY 함수와 관련된 함수 비교

함수 설명 활용 예
LAST_DAY(date) 해당 월 마지막 날짜 반환 마감일, 리포트 자동 계산
TRUNC(date, 'MM') 해당 월의 1일 반환 월별 기준 일자 설정
ADD_MONTHS(date, n) N개월 후 날짜 반환 월 단위 계약일 계산

7. 요약

LAST_DAY()는 마감일 계산, 월별 데이터 필터링, 회계 처리 등 다양한 용도에서 활용되는 중요한 날짜 함수입니다. 단독 사용은 물론 TRUNC, ADD_MONTHS 등과의 조합을 통해 강력한 날짜 기반 로직을 구현할 수 있으며, 업무 자동화에 핵심적인 역할을 합니다.

참고자료

728x90