You are viewing an older version of this section. View current production version.
Join the SingleStore Community Today
Get expert advice, develop skills, and connect with others.


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, MOUR_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.


memsql> 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                             |

memsql> 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                                       |