하은양 믿음군 효실맘 호홍홍집s

ADD_MONTH의 마지막날 처리 본문

가벼운 배움/Oracle

ADD_MONTH의 마지막날 처리

호홍홍집 2015. 8. 31. 16:32

기본적으로 add_month의 마지막날은

그달의 마지막날로 처리된다.

그래서 , 2월 28일 + 1개월의 마지막날은

3월 28일이 아니고 3월 31일이 된다...

이것 때문에 골치가 아픈데..ㅋㅋ

다음은 마지막날은 가장 작은 날로 지정한 함수다.

참조 : http://web-dev.tistory.com/414

CREATE OR REPLACE FUNCTION MIN_ADD_MONTHS (VDATE DATE, VMONTHS INTEGER)
RETURN DATE AS NEWDATE DATE;
BEGIN
    NEWDATE := ADD_MONTHS(VDATE,VMONTHS);
    IF TO_CHAR(VDATE,'DD') < TO_CHAR(NEWDATE,'DD') THEN
        NEWDATE := VDATE + NUMTOYMINTERVAL(VMONTHS,'MONTH');
    END IF;
    RETURN NEWDATE;
END MIN_ADD_MONTHS;