Watch the 7.3 Webinar On-Demand
This new release brings updates to Universal Storage, query optimization, and usability that you won’t want to miss.


Adds the given interval of time to a date or datetime object.


DATE_ADD (dateobj INTERVAL expr unit)
ADDDATE (dateobj INTERVAL expr unit)
ADDDATE (dateobj, days)


  • dateobj: a valid date, datetime, or parsable date string
  • expr: the number of units to add if unit is a simple type, or a string representation of the units to add if unit is a complex type. Can be negative.
  • days: number of days to add. Can be negative.

Simple types allowed for unit include YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MICROSECOND. Complex types allowed for unit include YEAR_MONTH, DAY_HOUR, DAY_MINUTE, DAY_SECOND, DAY_MICROSECOND, HOUR_MINUTE, HOUR_SECOND, HOUR_MICROSECOND, MINUTE_SECOND, MINUTE_MICROSECOND, SECOND_MICROSECOND. The expected format of expr for complex unit types is an arbitrarily delimited string of integers.

Return Type

Date or datetime object. If dateobj is not a valid date, returns NULL.


select ADDDATE("2010-04-02 01:23:54", INTERVAL 1 YEAR);
| ADDDATE("2010-04-02 01:23:54", INTERVAL 1 YEAR) |
| 2011-04-02 01:23:54                             |

select ADDDATE("2010-04-02", INTERVAL "1 02:03:04.567" DAY_MICROSECOND);
| ADDDATE("2010-04-02", INTERVAL "1 02:03:04.567" DAY_MICROSECOND) |
| 2010-04-03 02:03:04.567000                                       |