Mysql
 sql >> Baza danych >  >> RDS >> Mysql

TIMEDIFF() Przykłady – MySQL

MySQL TIMEDIFF() funkcja zwraca różnicę między dwiema wartościami czasu lub daty i czasu.

Działa to tak, że podajesz dwie wartości do porównania i TIMEDIFF() odejmuje drugą wartość od pierwszej, a następnie zwraca wynik jako wartość czasu.

Składnia

Składnia wygląda tak:

TIMEDIFF(expr1,expr2)

Gdzie expr1 i expr2 to dwie wartości do porównania. Zwracana wartość to expr2 odjęte od expr1 .

Przykład podstawowy

Oto przykład do zademonstrowania.

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

Wynik:

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

Czas, który upłynął

Wartość czasu może reprezentować upływ czasu, więc nie jest ograniczona do mniej niż 24 godzin.

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

Wynik:

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

Ujemna różnica czasu

Jeśli druga wartość jest większa niż pierwsza, otrzymasz ujemną wartość różnicy czasu. Jest to całkowicie ważne.

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

Wynik:

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

Wartości daty i godziny

Oto przykład, który używa wartości daty i godziny jako argumentów.

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

Wynik:

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

Zauważ, że oba argumenty muszą być tego samego typu. Więc nie możesz mieć wartości czasu dla pierwszego i wartości daty i czasu dla drugiego (i odwrotnie).

Pamiętaj też, że typ danych czas może należeć tylko do zakresu -838:59:59 do 838:59:59 . Dlatego poniższe nie działa:

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

Wynik:

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

W takim przypadku otrzymujemy niepoprawny wynik i ostrzeżenie.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql_fetch_assoc():podany argument nie jest prawidłowym zasobem wynikowym MySQL w php

  2. Dlaczego ten kod SQL daje błąd 1066 (Nieunikalna tabela/alias:„użytkownik”)?

  3. Oblicz percentyl na podstawie ostatnich dni w MySQL

  4. Zapytanie MySQL Insert nie działa z klauzulą ​​WHERE

  5. Wywoływanie skryptu PHP z wyzwalacza MySQL