Mysql
 sql >> Datenbank >  >> RDS >> Mysql

TIMESTAMPDIFF() Beispiele – MySQL

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 |
+--------------------+