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

DATEDIFF

Возвращает количество дней между двумя датами.

MySQL 8.1
DATEDIFF(date1, date2)

Параметры

date1DATE
Дата, из которой вычитается date2
date2DATE
Вычитаемая дата

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

Целое число дней (date1 минус date2), отрицательное, если date1 раньше; NULL, если хотя бы один аргумент равен NULL

Примеры

Разница в днях

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

Время не учитывается

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

Число ночей в бронировании

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

Подробности

Время в аргументах не учитывается. Чтобы получить разницу в часах, минутах или месяцах, используйте TIMESTAMPDIFF. В PostgreSQL функции нет: число дней даёт вычитание дат date1 - date2, а AGE возвращает интервал в годах, месяцах и днях.

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

Где изучить