MySQL TIMESTAMPDIFF()
функцията се използва за намиране на разликата между два израза за дата или дата и час. Трябва да подадете двете стойности за дата/дата и час, както и единицата, която да използвате при определяне на разликата (напр. ден , месец и т.н.). TIMESTAMPDIFF()
функцията ще върне разликата в посочената единица.
Синтаксис
Първо, ето как върви синтаксисът:
TIMESTAMPDIFF(единица,datetime_expr1,datetime_expr2)
Тук unit
е единицата, която се използва за изразяване на разликата (например ден, месец, година и т.н.). datetime_expr1
е първата стойност за дата/дата и час и datetime_expr2
е вторият.
Тази функция изважда datetime_expr1
от datetime_expr2
и връща резултата в unit
с. Резултатът се връща като цяло число.
Валидни единици
unit
аргументът може да бъде някое от следните:
MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Пример 1 – Разлика в дни
Ето пример за демонстриране на основното използване на тази функция. Тук сравняваме два израза за дата и връщаме разликата между тях в дни.
ИЗБЕРЕТЕ TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') КАТО 'Разлика в дни';
Резултат:
+-------------------+| Разлика в дни |+--------------------+| 20 |+-------------------+
Пример 2 – Разлика в часовете
В този пример сравняваме същите стойности като в предишния пример, освен тук, връщаме разликата в часове .
ИЗБЕРЕТЕ TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') КАТО 'Разлика в часовете';
Резултат:
+---------------------+| Разлика в часове |+---------------------+| 480 |+---------------------+
Пример 3 – Пример за „дата и час“
Ето пример, който връща разликата в минути. В този случай сравняваме две стойности за дата и час (за разлика само от стойностите за дата, както в предишните примери).
ИЗБЕРЕТЕ TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') КАТО 'Разлика в минути';
Резултат:
<пред>+-----------------------+| Разлика в минути |+-----------------------+| 15 |+-----------------------+Пример 4 – Частни секунди
Можете да отидете надолу до микросекундата (6 цифри), ако е необходимо.
ИЗБЕРЕТЕ TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') КАТО 'Разлика в микросекунди';
Резултат:
+----------------------------+| Разлика в микросекунди |+----------------------------+| 123456 |+----------------------------+
Пример 5 – Отрицателни резултати
Както може да се очаква, ако първият аргумент за дата/час е по-голям от втория, резултатът ще бъде цяло отрицателно число.
ИЗБЕРЕТЕ TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') КАТО 'Разлика в дни';
Резултат:
+-------------------+| Разлика в дни |+--------------------+| -20 |+-------------------+