Справочник по функциям

DATE_ADD

Прибавляет к дате временной интервал.

MySQL 8.1
DATE_ADD(date, INTERVAL expr unit)

Параметры

dateDATE
Исходная дата или дата со временем
INTERVAL expr unitключевое слово
Прибавляемый интервал: количество expr и единица unit, например INTERVAL 7 DAY
Значения:MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH

Возвращаемое значение

Дата, если к дате прибавляются дни или более крупные единицы, иначе дата со временем; если такого дня в месяце нет, берётся последний день месяца

Примеры

Неделя к дате платежа

MySQL 8.1
SELECT payment_id,
	date,
	DATE_ADD(date, INTERVAL 7 DAY) AS due_date
FROM Payments;
payment_iddatedue_date
12005-02-122005-02-19
22005-03-232005-03-30
32005-05-142005-05-21
42005-07-222005-07-29
52005-07-262005-08-02
62005-02-202005-02-27
72005-07-302005-08-06
82005-09-122005-09-19
92005-09-302005-10-07
102005-10-272005-11-03

Месяц к 31 января

MySQL 8.1
SELECT DATE_ADD('2024-01-31', INTERVAL 1 MONTH) AS new_date;
new_date
2024-02-29

Составная единица интервала

MySQL 8.1
SELECT DATE_ADD(
		'2022-06-16 10:00:00',
		INTERVAL '1:30' HOUR_MINUTE
	) AS new_date;
new_date
2022-06-16 11:30:00

Подробности

Вместо функции интервал можно прибавить или вычесть оператором: date + INTERVAL 7 DAY. В PostgreSQL такой функции нет, дату сдвигают тем же оператором, но интервал пишут строкой: date + INTERVAL '7 days'.

Составная единицаФормат строки exprПример
SECOND_MICROSECONDсекунды.микросекунды'10.000500'
MINUTE_MICROSECONDминуты:секунды.микросекунды'5:10.000500'
MINUTE_SECONDминуты:секунды'5:10'
HOUR_MICROSECONDчасы:минуты:секунды.микросекунды'2:05:10.000500'
HOUR_SECONDчасы:минуты:секунды'2:05:10'
HOUR_MINUTEчасы:минуты'1:30'
DAY_MICROSECONDдни часы:минуты:секунды.микросекунды'1 2:05:10.000500'
DAY_SECONDдни часы:минуты:секунды'1 2:05:10'
DAY_MINUTEдни часы:минуты'1 2:05'
DAY_HOURдни часы'1 12'
YEAR_MONTHгоды-месяцы'1-6'

Смотрите также