Перейти к основному содержимому

days_diff

Описание

Возвращает разность в днях между двумя выражениями дат (expr1expr2), с точностью до дня.

Разница между days_diff и datediff:

ФункцияПоведениеПример
days_diffВычисление выполняется с точностью до секунды и округляется вниз до ближайшего целого числа.days_diff между '2020-12-25 23:00:00' и '2020-12-24 23:00:01' равно 0.
datediffВычисление выполняется с точностью до дня.datediff между '2020-12-25 23:00:00' и '2020-12-24 23:00:01' равно 1.

Синтаксис

BIGINT days_diff(DATETIME expr1,DATETIME expr2);

Параметры

  • expr1: конечное время. Должно быть типа DATETIME или DATE.

  • expr2: начальное время. Должно быть типа DATETIME или DATE.

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

Возвращает значение типа BIGINT.

Возвращается NULL, если дата не существует, например, 2022-02-29. days_diff() учитывает части часов, минут и секунд в вычислениях. Если разность меньше 1 дня, возвращается 0.

Примеры

select days_diff('2010-11-30 23:00:00', '2010-11-29 23:00:00')
+---------------------------------------------------------+
| days_diff('2010-11-30 23:00:00', '2010-11-29 23:00:00') |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+

select days_diff('2010-11-30 23:00:00', '2010-11-29 23:10:00')
+---------------------------------------------------------+
| days_diff('2010-11-30 23:00:00', '2010-11-29 23:10:00') |
+---------------------------------------------------------+
| 0 |
+---------------------------------------------------------+