ADD_MONTHS
ADD_MONTHS
ADD_MONTHS() 함수는 날짜 또는 타임스탬프에 지정된 개월 수를 더하거나 빼며, 월말(end-of-month) 정보를 보존해요.
본문
문법
ADD_MONTHS( <date_or_timestamp_expr> , <num_months_expr> )
인자
date_or_timestamp_expr (필수) — 지정된 개월 수를 더하려는 날짜 또는 타임스탬프 표현식이에요.
num_months_expr (필수) — 더할 개월 수예요. 정수여야 하며 양수일 수도 음수일 수도 있어요. 값이 정수가 아닌 숫자 값(예: FLOAT)이면 가장 가까운 정수로 반올림돼요.
반환
반환 값의 데이터 타입은 첫 번째 인자의 데이터 타입과 같아요. 예를 들어 입력이 DATE면 출력도 DATE이고, 입력이 TIMESTAMP_NTZ면 출력도 TIMESTAMP_NTZ예요.
사용 노트
ADD_MONTHS는 MONTH 컴포넌트와 함께 사용한 DATEADD와는 약간 다른 결과를 반환해요.
ADD_MONTHS와DATEADD모두, 결과 월의 일 수가 원래 일 수보다 적으면 결과 월의 일은 결과 월의 마지막 날이 돼요.ADD_MONTHS에서만, 원래 일이 월의 마지막 날이면 결과 월의 일은 결과 월의 마지막 날이 돼요.
num_months_expr은 개월을 더하거나 빼는 양수 또는 음수 정수일 수 있어요.
예제
날짜에 2개월을 더하고 타임존 없는 타임스탬프로 캐스팅해요:
SELECT ADD_MONTHS('2016-05-15'::timestamp_ntz, 2) AS RESULT;
+-------------------------+
| RESULT |
|-------------------------|
| 2016-07-15 00:00:00.000 |
+-------------------------+
월말 정보 보존을 확인해 봐요.
2016년 2월(윤년) 마지막 날에 1개월을 더해요.
2016년 5월 마지막 날에서 1개월을 빼요.
SELECT ADD_MONTHS('2016-02-29'::date, 1) AS RESULT;
+------------+
| RESULT |
|------------|
| 2016-03-31 |
+------------+
SELECT ADD_MONTHS('2016-05-31'::date, -1) AS RESULT;
+------------+
| RESULT |
|------------|
| 2016-04-30 |
+------------+