MySQL | ADDDATE method
Start your free 7-days trial now!
MySQL's ADDDATE(~)
method adds the specified time interval to a date or datetime value.
Syntax
SELECT ADDDATE(date, INTERVAL expr unit);SELECT ADDDATE(date, days);
Parameters
1. date
| date/datetime
The date or datetime to add the time interval to.
2. days
| integer
The number of days to add to the provided date
.
3. expr unit
| integer with units
The interval to add to the provided date
together with its units.
Refer to 'List of units' at the bottom of page for a valid list of units.
Either the days
or expr unit
parameter must be specified, they cannot be used together.
Return value
The result of adding the specified interval to date
.
Examples
Consider the following table about some students:
student_id | fname | lname | day_enrolled | age | username |
---|---|---|---|---|---|
1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
The above sample table can be created using the code here.
Basic usage
To add 2 days to student enrollment dates:
SELECT fname, day_enrolled, ADDDATE(day_enrolled, 2)FROM students;
+----------+--------------+--------------------------+| fname | day_enrolled | ADDDATE(day_enrolled, 2) |+----------+--------------+--------------------------+| Sky | 2015-12-03 | 2015-12-05 || Ben | 2016-04-20 | 2016-04-22 || Travis | 2018-08-14 | 2018-08-16 || Arthur | 2016-04-01 | 2016-04-03 || Benjamin | 2014-01-01 | 2014-01-03 |+----------+--------------+--------------------------+
To add 2 months to student enrollment dates:
SELECT fname, day_enrolled, ADDDATE(day_enrolled, INTERVAL 2 MONTH)FROM students;
+----------+--------------+-----------------------------------------+| fname | day_enrolled | ADDDATE(day_enrolled, INTERVAL 2 MONTH) |+----------+--------------+-----------------------------------------+| Sky | 2015-12-03 | 2016-02-03 || Ben | 2016-04-20 | 2016-06-20 || Travis | 2018-08-14 | 2018-10-14 || Arthur | 2016-04-01 | 2016-06-01 || Benjamin | 2014-01-01 | 2014-03-01 |+----------+--------------+-----------------------------------------+
Negative intervals
To subtract 1 day from a date:
SELECT ADDDATE('2020-01-01', -1);
+---------------------------+| ADDDATE('2020-01-01', -1) |+---------------------------+| 2019-12-31 |+---------------------------+
Note that there is a separate method SUBDATE(~) specifically for subtracting intervals from a date / datetime.
List of units
The below table represents a list of units that are supported:
Unit | Expected Input Format |
---|---|
MICROSECOND |
|
SECOND |
|
MINUTE |
|
HOUR |
|
DAY |
|
WEEK |
|
MONTH |
|
QUARTER |
|
YEAR |
|
SECOND_MICROSECOND |
|
MINUTE_MICROSECOND |
|
MINUTE_SECOND |
|
HOUR_MICROSECOND |
|
HOUR_SECOND |
|
HOUR_MINUTE |
|
DAY_MICROSECOND |
|
DAY_SECOND |
|
DAY_MINUTE |
|
DAY_HOUR |
|
YEAR_MONTH |
|