Мне нужно получить количество дней, содержащихся в паре дат на MySQL.
Например:
- Дата заезда
12-04-2010
- Проверить дату
15-04-2010
Разница в днях будет 3
Что насчет функции DATEDIFF ?
Цитирую страницу руководства:
DATEDIFF () возвращает expr1 - expr2, выраженное в виде значений в днях от одной даты до другой. expr1 и expr2 являются выражениями даты или даты и времени. В расчете используются только части даты значений
В вашем случае вы бы использовали:
mysql> select datediff('2010-04-15', '2010-04-12');
+--------------------------------------+
| datediff('2010-04-15', '2010-04-12') |
+--------------------------------------+
| 3 |
+--------------------------------------+
1 row in set (0,00 sec)
Но обратите внимание, даты должны быть записаны как YYYY-MM-DD
, а не DD-MM-YYYY
как вы опубликовали.
datediff()
метода, иначе он вернет отрицательное значение.Обратите внимание, что если вы хотите посчитать полные 24 часа между двумя датами, datediff может вернуть вам неправильные значения.
В документации говорится:
что приводит к
select datediff('2016-04-14 11:59:00', '2016-04-13 12:00:00')
возвращает 1 вместо ожидаемого 0.
Решение использует
select timestampdiff(DAY, '2016-04-13 11:00:01', '2016-04-14 11:00:00');
(обратите внимание на противоположный порядок аргументов по сравнению с датированным).Некоторые примеры:
select timestampdiff(DAY, '2016-04-13 11:00:01', '2016-04-14 11:00:00');
возвращает 0select timestampdiff(DAY, '2016-04-13 11:00:00', '2016-04-14 11:00:00');
возвращает 1select timestampdiff(DAY, '2016-04-13 11:00:00', now());
возвращает количество полных 24-х дней, прошедших с 2016-04-13 до 11:00:00 .Надеюсь, это кому-нибудь поможет, потому что поначалу не очень понятно, почему datediff возвращает значения, которые кажутся неожиданными или неправильными.
источник
datediff()
иtimestampdiff()
.Используйте
DATEDIFF()
функцию.Пример из документации:
источник
Я предпочитаю TIMESTAMPDIFF, потому что вы можете легко изменить блок, если это будет необходимо.
источник
Получить дни между текущей датой и датой назначения
вывод
дней
источник
вывод::
надеюсь, это поможет кому-то в будущем
источник