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'