ADDDATE, DATE_ADD 함수

설명

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