sql >> Databáze >  >> RDS >> Mysql

Příklady TIMEDIFF() – MySQL

MySQL TIMEDIFF() funkce vrací rozdíl mezi dvěma hodnotami času nebo data a času.

Funguje to tak, že zadáte dvě hodnoty k porovnání a TIMEDIFF() odečte druhou hodnotu od první a vrátí výsledek jako časovou hodnotu.

Syntaxe

Syntaxe vypadá takto:

TIMEDIFF(expr1,expr2)

Kde expr1 a expr2 jsou dvě hodnoty k porovnání. Vrácená hodnota je expr2 odečteno od expr1 .

Základní příklad

Zde je příklad k demonstraci.

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

Výsledek:

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

Uplynulý čas

Hodnota času může představovat uplynulý čas, takže není omezena na méně než 24 hodin.

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

Výsledek:

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

Záporný časový rozdíl

Pokud je druhá hodnota větší než první, dostanete zápornou hodnotu časového rozdílu. To je naprosto platné.

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

Výsledek:

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

Hodnoty data a času

Zde je příklad, který používá jako argumenty hodnoty datetime.

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

Výsledek:

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

Všimněte si, že oba argumenty musí být stejného typu. Nemůžete tedy mít hodnotu času pro první a hodnotu data a času pro druhou (a naopak).

Upozorňujeme také, že typ časových dat může být pouze v rozsahu -838:59:59 na 838:59:59 . Proto nefunguje následující:

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

Výsledek:

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

V tomto případě dostaneme nesprávný výsledek a varování.


  1. Jak povolit CDC na sadě tabulek NEBO povolit na všech tabulkách v databázi na SQL Server - SQL Server výukový program

  2. nastavit prázdné heslo pro uživatele PostgreSQL

  3. Vícesloupcový index na 3 polích s heterogenními datovými typy

  4. Vygenerujte rozsah dat pomocí SQL