sql >> Database >  >> RDS >> Mysql

TIMEDIFF() Voorbeelden – MySQL

De MySQL TIMEDIFF() functie retourneert het verschil tussen twee tijd- of datetime-waarden.

De manier waarop het werkt, is dat u de twee waarden opgeeft om te vergelijken, en TIMEDIFF() trekt de tweede waarde van de eerste af en retourneert het resultaat als een tijdswaarde.

Syntaxis

De syntaxis gaat als volgt:

TIMEDIFF(expr1,expr2)

Waar expr1 en expr2 zijn de twee waarden om te vergelijken. De retourwaarde is expr2 afgetrokken van expr1 .

Basisvoorbeeld

Hier is een voorbeeld om te demonstreren.

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

Resultaat:

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

Verstreken tijd

De tijdwaarde kan de verstreken tijd vertegenwoordigen, dus het is niet beperkt tot minder dan 24 uur.

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

Resultaat:

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

Negatief tijdsverschil

Als de tweede waarde groter is dan de eerste, krijg je een negatieve waarde voor het tijdsverschil. Dit is volkomen geldig.

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

Resultaat:

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

Datum/tijd-waarden

Hier is een voorbeeld dat datetime-waarden als argumenten gebruikt.

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

Resultaat:

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

Merk op dat beide argumenten van hetzelfde type moeten zijn. U kunt dus geen tijdwaarde hebben voor de eerste en een datetime-waarde voor de tweede (en vice versa).

Houd er ook rekening mee dat het tijdgegevenstype alleen kan liggen in het bereik -838:59:59 naar 838:59:59 . Daarom werkt het volgende niet:

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

Resultaat:

+--------------------------------------------------------+
| TIMEDIFF('2000-01-01 10:35:25', '2021-01-01 10:35:25') |
+--------------------------------------------------------+
| -838:59:59                                             |
+--------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

In dit geval krijgen we een onjuist resultaat en een waarschuwing.


  1. Identiteitstoename springt in SQL Server-database

  2. SQL Server Profiler gebruiken | Problemen met SQL Server-prestaties oplossen -5

  3. Het herstelmodel van een SQL Server-database wijzigen met T-SQL

  4. Wat is T-SQL?