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;Время не учитывается
MySQL 8.1
SELECT DATEDIFF('2022-12-05 23:59:59', '2022-12-01 00:00:01') AS days;Число ночей в бронировании
MySQL 8.1
SELECT id,
start_date,
end_date,
DATEDIFF(end_date, start_date) AS nights
FROM Reservations;Подробности
Время в аргументах не учитывается. Чтобы получить разницу в часах, минутах или месяцах, используйте TIMESTAMPDIFF. В PostgreSQL функции нет: число дней даёт вычитание дат date1 - date2, а AGE возвращает интервал в годах, месяцах и днях.