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

TIMEDIFF() Beispiele – MySQL

Das MySQL TIMEDIFF() Die Funktion gibt die Differenz zwischen zwei Zeit- oder Datumszeitwerten zurück.

Es funktioniert so, dass Sie die beiden zu vergleichenden Werte und TIMEDIFF() angeben subtrahiert den zweiten Wert vom ersten und gibt dann das Ergebnis als Zeitwert zurück.

Syntax

Die Syntax lautet wie folgt:

TIMEDIFF(expr1,expr2)

Wobei expr1 und expr2 sind die beiden zu vergleichenden Werte. Der Rückgabewert ist expr2 von expr1 subtrahiert .

Einfaches Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

SELECT TIMEDIFF('11:35:25', '10:35:25');

Ergebnis:

+----------------------------------------------+| TIMEDIFF('11:35:25', '10:35:25') |+------------------------------ ----+| 01:00:00 |+--------------------------------+

Vergangene Zeit

Der Zeitwert kann die verstrichene Zeit darstellen, ist also nicht auf weniger als 24 Stunden beschränkt.

SELECT TIMEDIFF('500:35:25', '10:35:25');

Ergebnis:

+-----------------------------------+| TIMEDIFF('500:35:25', '10:35:25') |+------------------------------ -----+| 490:00:00 |+-----------------------------------+

Negativer Zeitunterschied

Wenn der zweite Wert größer als der erste ist, erhalten Sie einen negativen Wert für die Zeitdifferenz. Dies ist vollkommen gültig.

SELECT TIMEDIFF('10:35:25', '500:35:25');

Ergebnis:

+-----------------------------------+| TIMEDIFF('10:35:25', '500:35:25') |+------------------------------ -----+| -490:00:00 |+-----------------------------------+

Datum/Uhrzeit-Werte

Hier ist ein Beispiel, das datetime-Werte als Argumente verwendet.

SELECT TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25');

Ergebnis:

+---------------------------------------------- ----------+| TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25') |+-------------------- ------------------------------------+| 744:00:00 |+-------------------------------------------------- -------------+

Beachten Sie, dass beide Argumente vom gleichen Typ sein müssen. Sie können also keinen Zeitwert für den ersten und einen Datetime-Wert für den zweiten haben (und umgekehrt).

Beachten Sie auch, dass der Zeitdatentyp nur im Bereich -838:59:59 liegen kann zu 838:59:59 . Daher funktioniert Folgendes nicht:

SELECT TIMEDIFF('2000-01-01 10:35:25', '2021-01-01 10:35:25');

Ergebnis:

+---------------------------------------------- ----------+| TIMEDIFF('2000-01-01 10:35:25', '2021-01-01 10:35:25') |+-------------------- ------------------------------------+| -838:59:59 |+-------------------------------------------------- --------------+1 Zeile im Satz, 1 Warnung (0,00 Sek.)

In diesem Fall erhalten wir ein falsches Ergebnis und eine Warnung.