Функция TIMESTAMPDIFF () в MYSQL

Опубликовано: 8 Августа, 2021

TIMESTAMPDIFF ():

Эта функция в MySQL используется для возврата значения после вычитания выражения DateTime из другого.

Синтаксис:

 TIMESTAMPDIFF (единица измерения; выражение1; выражение2)

Параметры:

Он принимает три параметра.

  • Ед. изм -
    Он обозначает единицу измерения результата. Это может быть одно из следующих.
    МИКРОСЕКУНДА, СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД
  • expr1 -
    Первая дата или выражения DateTime.
  • expr2 -
    Вторая дата или выражения DateTime.

Возврат:

Он возвращает выражения DateTime после вычитания.

Пример 1:

Получение разницы между двумя указанными значениями времени, где время указано в формате ГГГГ-ММ-ДД ЧЧ-ММ-СС. Здесь expr2 больше expr1, поэтому возвращаемое значение положительное.

 ВЫБЕРИТЕ TIMESTAMPDIFF (ВТОРОЙ, '2010-01-01 10:10:20', '2010-01-01 10:45:59') КАК ВТОРАЯ РАЗНИЦА;

Выход :

ВТОРАЯ РАЗНИЦА
2139

Пример 2:

Получение разницы между двумя указанными значениями времени, где время указано в формате ГГГГ-ММ-ДД ЧЧ-ММ-СС. Здесь expr2 меньше expr1, поэтому возвращаемое значение отрицательное.

 ВЫБЕРИТЕ TIMESTAMPDIFF (ВТОРОЙ, '2010-01-01 10:10:20', '2010-01-01 09:45:59') КАК ВТОРАЯ РАЗНИЦА;

Выход:

ВТОРАЯ РАЗНИЦА
-1461

Пример 3:

Получение разницы между двумя указанными значениями даты в месяце, когда дата указана в формате ГГГГ-ММ-ДД.

 ВЫБЕРИТЕ TIMESTAMPDIFF (МЕСЯЦ, '2019-08-01', '2020-11-01') КАК РАЗНИЦА МЕСЯЦА;

Выход:

РАЗНИЦА В МЕСЯЦЕ
15

Пример 4:

Расчет общего опыта работы сотрудника с помощью функции TIMESTAMPDIFF.

Создание таблицы сотрудников -

 СОЗДАТЬ ТАБЛИЦУ Сотрудник (
    id INT AUTO_INCREMENT PRIMARY KEY,
    Full_Name VARCHAR (50) NOT NULL,
    Joining_Date DATE NOT NULL
);

Вставка значений в таблицу -

 ВСТАВИТЬ В сотрудника (ФИО, Дата присоединения)
ЦЕННОСТИ ('Рия Яна', '2000-01-01'),
      ('Sayan Ghosh', '2005-09-26'),
      ('Ринки Шарма', '2014-08-12'),
      («Аникет Сингх», «2019-11-05»);

Теперь мы будем использовать TIMESTAMPDIFF для расчета опыта работы каждого сотрудника в году.

 ВЫБРАТЬ 
    я бы,
    ФИО,
    Дата вступления ,
    TIMESTAMPDIFF (YEAR, Joining_Date, '2020-11-26') КАК WorkExperience
ИЗ
    Работник ;

Выход :

Я БЫ ФИО ДАТА ВСТУПЛЕНИЯ РАБОЧИЙ СТАЖ
1 Рия Яна 2000-01-01 20
2 Саян Гош 2005-09-26 15
3 Ринки Шарма 2014-08-12 6
4 Аникет Сингх 2019-11-05 1