Функция TIMESTAMPDIFF

Функция TIMESTAMPDIFF используется для вычисления разницы между двумя датами или датами со временем в заданных единицах (годы, месяцы, дни, часы и т.д.). Результат возвращается в виде целого числа и округляется вниз.

Синтаксис

sqlSELECT
  TIMESTAMPDIFF(unit, datetime_1, datetime_2)
FROM table_name

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

employees
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

Пример

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

sqlSELECT 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

Пример

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

sqlSELECT 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

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

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