ADD_MONTHS Function
ADD_MONTHS (init_date, add_months)
특정 일자에서 월을 더한 값을 반환하는 함수입니다.
사용 가능한 버전
Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
매개변수
init_date
- datetime Type 또는 DATE로 변환할 수 있는 값입니다.
add_months
- 초기 날짜(initdate)에 추가할 개월 수를 지정합니다.
- 음수일 경우 초기 날짜(init_date)의 이전 개월로 계산됩니다.
- 0일 경우 초기 날짜(init_date)의 마지막 날입니다.
특징
- ADD_MONTHS 함수는 날짜 데이터 타입의 값을 반환합니다.
- 초기 날자가 월의 마지막 날일 경우 반환 값은 해당 월의 마지막 날입니다.
Example Data
EX 1) 1개월 더한 날짜, 12개월 더한 날짜
- 오늘 일자(2021-05-17)에서 1개월을 더하면 2021-06-17이 반환됩니다.
- 오늘 일자(2021-05-17)에서 12개월을 더하면 2022-05-17이 반환됩니다.
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS NOW_DATE
, TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'YYYY-MM-DD HH24:MI:SS') AS NEXT_MONTH
, TO_CHAR(ADD_MONTHS(SYSDATE, 12), 'YYYY-MM-DD HH24:MI:SS') AS NEXT_YEAR
FROM DUAL;
EX 2) -1개월 더한 날짜, -12개월 더한 날짜
- 오늘 일자(2021-05-17)에서 -1개월을 더하면 2020-06-17이 반환됩니다.
- 오늘 일자(2021-05-17)에서 -12개월을 더하면 2020-05-17이 반환됩니다.
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS NOW_DATE
, TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'YYYY-MM-DD HH24:MI:SS') AS BEFORE_MONTH
, TO_CHAR(ADD_MONTHS(SYSDATE, -12), 'YYYY-MM-DD HH24:MI:SS') AS BEFORE_YEAR
FROM DUAL;
EX 3) 초기 날짜가 마지막 날인 경우
- 2021-06-31은 존재하지 않은 날짜이므로 6월의 마지막 날인 2021-06-30이 반환됩니다.
- 2021-02-31은 존재하지 않은 날짜이므로 2월의 마지막 날인 2021-02-28이 반환됩니다.
SELECT TO_CHAR(TO_DATE('31-MAY-21'), 'YYYY-MM-DD HH24:MI:SS') AS DATE1
, TO_CHAR(ADD_MONTHS(TO_DATE('31-MAY-21'), 1), 'YYYY-MM-DD HH24:MI:SS') AS NEXT_MONTH_DATE1
, TO_CHAR(TO_DATE('31-MAR-21'), 'YYYY-MM-DD HH24:MI:SS') AS DATE2
, TO_CHAR(ADD_MONTHS(TO_DATE('31-MAR-21'), -1), 'YYYY-MM-DD HH24:MI:SS') AS BEFORE_MONTH_DATE2
FROM DUAL;
반응형
'DataBase > Oracle' 카테고리의 다른 글
[ORACLE]해당 월의 마지막 날을 구하는 LAST_DAY 함수 (0) | 2021.05.18 |
---|---|
[ORACLE]날짜 사이의 개월 수를 구하는 MONTHS_BETWEEN 함수 (0) | 2021.05.18 |
[ORACLE]문자열 자르는 SUBSTR 함수 (0) | 2021.05.17 |
[ORACLE]공백 및 특정 문자를 제거하는 TRIM, LTRIM, RTRIM 함수 (0) | 2021.05.17 |
[ORACLE]반올림하는 ROUND 함수 (0) | 2021.05.16 |
댓글