DATE_ADD
Adds a time interval to a date.
MySQL 8.1
DATE_ADD(date, INTERVAL expr unit)Parameters
- dateDATE
- Source date or datetime
- INTERVAL expr unitkeyword
- Interval to add: amount expr and unit, for example INTERVAL 7 DAY
- Values:MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH
Return value
A date if days or larger units are added to a date, otherwise a datetime; if the month has no such day, its last day is used
Examples
A week added to payment dates
MySQL 8.1
SELECT payment_id,
date,
DATE_ADD(date, INTERVAL 7 DAY) AS due_date
FROM Payments;A month added to January 31
MySQL 8.1
SELECT DATE_ADD('2024-01-31', INTERVAL 1 MONTH) AS new_date;Compound interval unit
MySQL 8.1
SELECT DATE_ADD(
'2022-06-16 10:00:00',
INTERVAL '1:30' HOUR_MINUTE
) AS new_date;Details
Instead of the function, you can add or subtract an interval with an operator: date + INTERVAL 7 DAY. PostgreSQL has no such function: a date is shifted with the same operator, but the interval is written as a string: date + INTERVAL '7 days'.