Das MySQL TIMESTAMPDIFF()
Die Funktion wird verwendet, um den Unterschied zwischen zwei Datums- oder Datumszeitausdrücken zu finden. Sie müssen die beiden date/datetime-Werte sowie die Einheit übergeben, die zur Bestimmung der Differenz verwendet werden soll (z. B. Tag , Monat , etc). Der TIMESTAMPDIFF()
Die Funktion gibt dann die Differenz in der angegebenen Einheit zurück.
Syntax
Zunächst einmal die folgende Syntax:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Hier unit
ist die Einheit, die zum Ausdrücken der Differenz verwendet werden soll (z. B. Tag, Monat, Jahr usw.). datetime_expr1
ist der erste date/datetime-Wert und datetime_expr2
ist die zweite.
Diese Funktion subtrahiert datetime_expr1
von datetime_expr2
und gibt das Ergebnis in unit
zurück s. Das Ergebnis wird als Ganzzahl zurückgegeben.
Gültige Einheiten
Die unit
Argument kann eines der folgenden sein:
MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Beispiel 1 – Unterschied in Tagen
Hier ist ein Beispiel, um die grundlegende Verwendung dieser Funktion zu demonstrieren. Hier vergleichen wir zwei Datumsausdrücke und geben die Differenz zwischen ihnen in Tagen zurück.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Ergebnis:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Beispiel 2 – Unterschied in Stunden
In diesem Beispiel vergleichen wir dieselben Werte wie im vorherigen Beispiel, außer dass wir hier die Differenz in Stunden zurückgeben .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Ergebnis:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Beispiel 3 – Ein „datetime“-Beispiel
Hier ist ein Beispiel, das die Differenz in Minuten zurückgibt. In diesem Fall vergleichen wir zwei datetime-Werte (im Gegensatz zu nur den date-Werten wie in den vorherigen Beispielen).
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
Ergebnis:
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
Beispiel 4 – Sekundenbruchteile
Sie können bei Bedarf bis auf die Mikrosekunde (6 Ziffern) heruntergehen.
SELECT TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') AS 'Difference in Microseconds';
Ergebnis:
+----------------------------+ | Difference in Microseconds | +----------------------------+ | 123456 | +----------------------------+
Beispiel 5 – Negative Ergebnisse
Wenn das erste Datums-/Zeitargument größer als das zweite ist, ist das Ergebnis erwartungsgemäß eine negative Ganzzahl.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Ergebnis:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+