DATE_SUB
Resta un intervalo de tiempo a una fecha.
MySQL 8.4
DATE_SUB(date, INTERVAL expr unit)- date
- Fecha o fecha y hora de origenDATE
- INTERVAL expr unit
- Intervalo que se resta, por ejemplo INTERVAL 1 MONTH
- expr
- Cuántas unidades se restan
- unit
- Unidad del intervaloPalabra claveMICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH
Valor devuelto
Fecha si a una fecha se restan 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
Diez días antes del cumpleaños
MySQL 8.4
SELECT member_name,
birthday,
DATE_SUB(birthday, INTERVAL 10 DAY) AS reminder_date
FROM FamilyMembers;Un mes antes del 31 de marzo
MySQL 8.4
SELECT DATE_SUB('2024-03-31', INTERVAL 1 MONTH) AS new_date;Unidad de intervalo compuesta
MySQL 8.4
SELECT DATE_SUB('2022-06-16', INTERVAL '1 12' DAY_HOUR) AS new_date;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'.