I MariaDB, DATEDIFF() er en indbygget dato- og tidsfunktion, der returnerer forskellen i dage mellem to datoer.
Den accepterer to argumenter, som begge er dato- eller datetime-udtryk. Den trækker derefter den anden dato fra den første.
Syntaks
Syntaksen ser sådan ud:
DATEDIFF(expr1,expr2)
Det returnerer derefter expr1 - expr2 .
Eksempel
Her er et eksempel:
SELECT DATEDIFF('2030-01-25', '2030-01-20'); Resultat:
+--------------------------------------+
| DATEDIFF('2030-01-25', '2030-01-20') |
+--------------------------------------+
| 5 |
+--------------------------------------+ Her er den igen, men med datoerne byttet rundt:
SELECT DATEDIFF('2030-01-20', '2030-01-25'); Resultat:
+--------------------------------------+
| DATEDIFF('2030-01-20', '2030-01-25') |
+--------------------------------------+
| -5 |
+--------------------------------------+ Dato-tidsværdier
Her er et eksempel, der bruger datetime-værdier:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59'); Resultat:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
+--------------------------------------------------------+
| 5 |
+--------------------------------------------------------+ Her er et andet eksempel:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59'); Resultat:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
+--------------------------------------------------------+
| 0 |
+--------------------------------------------------------+
I dette tilfælde, selvom det var næsten en hel dag, var det ikke helt, og så resultatet er 0 .
Aktuel dato
Her sender vi NOW() som det andet argument:
SELECT
NOW(),
DATEDIFF('2030-01-20', NOW()); Resultat:
+---------------------+-------------------------------+
| NOW() | DATEDIFF('2030-01-20', NOW()) |
+---------------------+-------------------------------+
| 2021-05-10 10:03:08 | 3177 |
+---------------------+-------------------------------+ I dette tilfælde er der 3.177 dage mellem nu og den anden dato.
Ugyldige argumenter
Når ugyldige argumenter sendes, DATEDIFF() returnerer null :
SELECT DATEDIFF('Homer', 'Simpson'); Resultat:
+------------------------------+
| DATEDIFF('Homer', 'Simpson') |
+------------------------------+
| NULL |
+------------------------------+ Manglende argument
Kalder DATEDIFF() det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer i en fejl:
SELECT DATEDIFF(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'
Og:
SELECT DATEDIFF('2030-05-21'); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'