sql >> Databáze >  >> RDS >> MariaDB

Jak DATEDIFF() funguje v MariaDB

V MariaDB, DATEDIFF() je vestavěná funkce data a času, která vrací rozdíl ve dnech mezi dvěma daty.

Přijímá dva argumenty, z nichž oba jsou výrazy data nebo data a času. Poté odečte druhé datum od prvního.

Syntaxe

Syntaxe vypadá takto:

DATEDIFF(expr1,expr2)

Poté vrátí expr1 - expr2 .

Příklad

Zde je příklad:

SELECT DATEDIFF('2030-01-25', '2030-01-20');

Výsledek:

+--------------------------------------+
| DATEDIFF('2030-01-25', '2030-01-20') |
+--------------------------------------+
|                                    5 |
+--------------------------------------+

Tady je to znovu, ale s prohozenými daty:

SELECT DATEDIFF('2030-01-20', '2030-01-25');

Výsledek:

+--------------------------------------+
| DATEDIFF('2030-01-20', '2030-01-25') |
+--------------------------------------+
|                                   -5 |
+--------------------------------------+

Hodnoty data a času

Zde je příklad, který používá hodnoty datetime:

SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');

Výsledek:

+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
+--------------------------------------------------------+
|                                                      5 |
+--------------------------------------------------------+

Zde je další příklad:

SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59');

Výsledek:

+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
+--------------------------------------------------------+
|                                                      0 |
+--------------------------------------------------------+

V tomto případě, i když to byl skoro celý den, nebylo to tak docela, takže výsledek je 0 .

Aktuální datum

Zde předáme NOW() jako druhý argument:

SELECT 
    NOW(),
    DATEDIFF('2030-01-20', NOW());

Výsledek:

+---------------------+-------------------------------+
| NOW()               | DATEDIFF('2030-01-20', NOW()) |
+---------------------+-------------------------------+
| 2021-05-10 10:03:08 |                          3177 |
+---------------------+-------------------------------+

V tomto případě je mezi dneškem a druhým datem 3 177 dní.

Neplatné argumenty

Po předání neplatných argumentů DATEDIFF() vrátí null :

SELECT DATEDIFF('Homer', 'Simpson');

Výsledek:

+------------------------------+
| DATEDIFF('Homer', 'Simpson') |
+------------------------------+
|                         NULL |
+------------------------------+

Chybí argument

Volání DATEDIFF() nesprávný počet argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT DATEDIFF();

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'

A:

SELECT DATEDIFF('2030-05-21');

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'

  1. Geniální nástroj pro změnu hesla SQL pro resetování hesla SQL

  2. Datový model 3D šachy Star Trek

  3. Typy v MySQL:BigInt (20) vs Int (20)

  4. sql cross join - jaké využití pro to někdo našel?