ADDDATE 함수와 DATE_ADD 함수는 동일하며, 특정 DATE 값에 대해 덧셈 또는 뺄셈을 실행한다.
리턴 값은 DATE 타입 또는 DATETIME 타입이다. DATETIME 타입을 반환하는 경우는 다음과 같다.
따라서 위의 경우 외에 DATETIME 타입의 결과 값을 반환하려면 CAST( ) 함수를 이용하여 첫 번째 인자 값의 타입을 변환해야 한다. 연산 결과의 날짜가 해당 월의 마지막 날짜를 초과하면, 해당 월의 말일을 적용하여 유효한 DATE 값을 반환한다.
ADDDATE(date, INTERVAL expr unit)
DATE_ADD(date, INTERVAL expr unit)
ADDDATE(date, days)
unit 값에 대한 expr 값
Unit 값 |
expr 값 |
---|---|
MILLISECOND |
MILLISECONDS |
SECOND |
SECONDS |
MINUTE |
MINUTES |
HOUR |
HOURS |
DAY |
DAYS |
WEEK |
WEEKS |
MONTH |
MONTHS |
QUARTER |
QUARTERS |
YEAR |
YEARS |
SECOND_MILLISECOND |
'SECONDS.MILLISECONDS' |
MINUTE_MILLISECOND |
'MINUTES:SECONDS.MILLISECONDS' |
MINUTE_SECOND |
'MINUTES:SECONDS' |
HOUR_MILLISECOND |
'HOURS:MINUTES:SECONDS.MILLISECONDS' |
HOUR_SECOND |
'HOURS:MINUTES:SECONDS' |
HOUR_MINUTE |
'HOURS:MINUTES' |
DAY_MILLISECOND |
'DAYS HOURS:MINUTES:SECONDS.MILLISECONDS' |
DAY_SECOND |
'DAYS HOURS:MINUTES:SECONDS' |
DAY_MINUTE |
'DAYS HOURS:MINUTES' |
DAY_HOUR |
'DAYS HOURS' |
YEAR_MONTH |
'YEARS-MONTHS' |
SELECT SYSDATE, ADDDATE(SYSDATE,INTERVAL 24 HOUR), ADDDATE(SYSDATE, 1);
SYS_DATE date_add( SYS_DATE , INTERVAL 24 HOUR) adddate( SYS_DATE , 1)
==============================================================================
03/30/2010 12:00:00.000 AM 03/31/2010 03/31/2010
--it substracts days when argument < 0
SELECT SYSDATE, ADDDATE(SYSDATE,INTERVAL -24 HOUR), ADDDATE(SYSDATE, -1);
SYS_DATE date_add( SYS_DATE , INTERVAL -24 HOUR) adddate( SYS_DATE , -1)
==============================================================================
03/30/2010 12:00:00.000 AM 03/29/2010 03/29/2010
--when expr is not fully specified for unit
select sys_datetime, adddate(sys_datetime, interval '1:20' HOUR_SECOND);
SYS_DATETIME date_add( SYS_DATETIME , INTERVAL '1:20' HOUR_SECOND)
=======================================================================================
06:18:24.149 PM 06/28/2010 06:19:44.149 PM 06/28/2010