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'