Referencia de funciones

DATE_ADD

Suma un intervalo de tiempo a una fecha.

MySQL 8.4
DATE_ADD(date, INTERVAL expr unit)
date
Fecha o fecha y hora de origen
DATE
INTERVAL expr unit
Intervalo que se suma, por ejemplo INTERVAL 7 DAY
expr
Cuántas unidades se suman
unit
Unidad del intervalo
Palabra clave
MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH

Valor devuelto

Fecha si a una fecha se suman días o unidades mayores; si no, fecha y hora; si el día no existe en el mes, se usa el último día del mes

Ejemplos

Una semana más a la fecha de pago

MySQL 8.4
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

Un mes al 31 de enero

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

Unidad de intervalo compuesta

MySQL 8.4
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

Detalles

En lugar de la función, puedes sumar o restar un intervalo con un operador: date + INTERVAL 7 DAY. En PostgreSQL esta función no existe: la fecha se desplaza con el mismo operador, pero el intervalo se escribe como cadena: date + INTERVAL '7 days'.

Unidad compuestaFormato de la cadena exprEjemplo
SECOND_MICROSECONDsegundos.microsegundos'10.000500'
MINUTE_MICROSECONDminutos:segundos.microsegundos'5:10.000500'
MINUTE_SECONDminutos:segundos'5:10'
HOUR_MICROSECONDhoras:minutos:segundos.microsegundos'2:05:10.000500'
HOUR_SECONDhoras:minutos:segundos'2:05:10'
HOUR_MINUTEhoras:minutos'1:30'
DAY_MICROSECONDdías horas:minutos:segundos.microsegundos'1 2:05:10.000500'
DAY_SECONDdías horas:minutos:segundos'1 2:05:10'
DAY_MINUTEdías horas:minutos'1 2:05'
DAY_HOURdías horas'1 12'
YEAR_MONTHaños-meses'1-6'

Véase también