Функция DATEDIFF

Функция DATEDIFF используется для вычисления количества дней между двумя датами. Результат может быть положительным или отрицательным в зависимости от порядка аргументов. Время суток при расчёте не учитывается.

Синтаксис

sqlSELECT
  DATEDIFF(date_1, date_2)
FROM table_name

Таблицы для примеров

employees
id name hire_date finish_date
1 Ivan 2023-01-10 2023-02-01
2 Olga 2023-03-05 2023-03-20
3 Sergey 2023-04-01 2023-04-01
4 Anna 2023-05-15 2023-05-10

Пример

Давайте вычислим количество дней между датой окончания и датой начала работы для каждого сотрудника:

sqlSELECT name, hire_date, finish_date,
  DATEDIFF(finish_date, hire_date) AS work_days
FROM employees
ORDER BY id

Результат выполнения кода:

name hire_date finish_date work_days
Ivan 2023-01-10 2023-02-01 22
Olga 2023-03-05 2023-03-20 15
Sergey 2023-04-01 2023-04-01 0
Anna 2023-05-15 2023-05-10 -5

Пример

Давайте выберем только тех сотрудников, у которых разница между датами превышает десять дней:

sqlSELECT id, name FROM employees
WHERE DATEDIFF(finish_date, hire_date) > 10
ORDER BY id

Результат выполнения кода:

id name
1 Ivan
2 Olga

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

  • функцию DATE_ADD,
    которая прибавляет интервал к дате
  • функцию DATE_SUB,
    которая вычитает интервал из даты
  • функцию TIMESTAMPDIFF,
    которая считает разницу в нужных единицах
  • конструкцию INTERVAL,
    которая задаёт интервал времени