Функция DATEDIFF
Функция DATEDIFF используется для вычисления количества дней
между двумя датами. Результат может быть положительным
или отрицательным в зависимости от порядка аргументов.
Время суток при расчёте не учитывается.
Синтаксис
SELECT
DATEDIFF(date_1, date_2)
FROM table_name
Таблицы для примеров
| 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 |
Пример
Давайте вычислим количество дней между датой окончания и датой начала работы для каждого сотрудника:
SELECT 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 |
Пример
Давайте выберем только тех сотрудников, у которых разница между датами превышает десять дней:
SELECT 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,
которая задаёт интервал времени