Referencia de funciones

DATEDIFF

Devuelve el número de días entre dos fechas.

MySQL 8.4
DATEDIFF(date1, date2)
date1
Fecha de la que se resta date2
DATE
date2
Fecha que se resta
DATE

Valor devuelto

Número entero de días (date1 menos date2), negativo si date1 es anterior; NULL si al menos un argumento es NULL

Ejemplos

Diferencia en días

MySQL 8.4
SELECT DATEDIFF('2022-12-05', '2022-12-01') AS days;
days
4

La hora se ignora

MySQL 8.4
SELECT DATEDIFF('2022-12-05 23:59:59', '2022-12-01 00:00:01') AS days;
days
4

Noches por reserva

MySQL 8.4
SELECT id,
	start_date,
	end_date,
	DATEDIFF(end_date, start_date) AS nights
FROM Reservations;
idstart_dateend_datenights
12018-11-13 12:00:002018-11-15 12:00:002
22018-10-09 12:00:002018-10-12 12:00:003
32018-12-29 12:00:002019-01-07 12:00:009
42019-02-01 12:00:002019-02-02 12:00:001
52019-02-02 12:00:002019-02-04 12:00:002
62020-03-21 09:00:002020-03-23 09:00:002
72020-03-21 10:00:002020-04-21 10:00:0031
82019-06-14 10:00:002019-06-24 10:00:0010
92019-05-11 10:00:002019-05-14 10:00:003
102019-11-04 10:00:002019-11-06 10:00:002

Detalles

La hora de los argumentos se ignora. Para la diferencia en horas, minutos o meses, usa TIMESTAMPDIFF. En PostgreSQL esta función no existe: el número de días lo da la resta date1 - date2, y AGE devuelve un intervalo en años, meses y días.

Véase también

Dónde aprenderlo