Функция TIMESTAMPDIFF
Функция TIMESTAMPDIFF используется для вычисления разницы
между двумя датами или датами со временем в заданных единицах
(годы, месяцы, дни, часы и т.д.). Результат возвращается
в виде целого числа и округляется вниз.
Синтаксис
SELECT
TIMESTAMPDIFF(unit, datetime_1, datetime_2)
FROM table_name
Таблицы для примеров
| id | name | hire_date | finish_date |
|---|---|---|---|
| 1 | Ivan | 2020-01-15 | 2023-01-14 |
| 2 | Olga | 2021-06-01 | 2023-06-01 |
| 3 | Sergey | 2022-03-10 | 2023-03-25 |
| 4 | Anna | 2023-01-01 | 2023-01-20 |
Пример
Давайте вычислим стаж сотрудников в полных годах между датой приёма и датой окончания работы:
SELECT name,
TIMESTAMPDIFF(YEAR, hire_date, finish_date) AS work_years
FROM employees
ORDER BY id
Результат выполнения кода:
| name | work_years |
|---|---|
| Ivan | 2 |
| Olga | 2 |
| Sergey | 1 |
| Anna | 0 |
Пример
Давайте определим разницу между датами в полных месяцах:
SELECT name,
TIMESTAMPDIFF(MONTH, hire_date, finish_date) AS work_months
FROM employees
ORDER BY id
Результат выполнения кода:
| name | work_months |
|---|---|
| Ivan | 35 |
| Olga | 24 |
| Sergey | 12 |
| Anna | 0 |