In MariaDB, DATEDIFF()
is een ingebouwde datum- en tijdfunctie die het verschil in dagen tussen twee datums retourneert.
Het accepteert twee argumenten, die beide datum- of datetime-expressies zijn. Vervolgens wordt de tweede datum van de eerste afgetrokken.
Syntaxis
De syntaxis gaat als volgt:
DATEDIFF(expr1,expr2)
Het retourneert dan expr1 - expr2
.
Voorbeeld
Hier is een voorbeeld:
SELECT DATEDIFF('2030-01-25', '2030-01-20');
Resultaat:
+--------------------------------------+ | DATEDIFF('2030-01-25', '2030-01-20') | +--------------------------------------+ | 5 | +--------------------------------------+
Hier is het weer, maar met de datums verwisseld:
SELECT DATEDIFF('2030-01-20', '2030-01-25');
Resultaat:
+--------------------------------------+ | DATEDIFF('2030-01-20', '2030-01-25') | +--------------------------------------+ | -5 | +--------------------------------------+
Datum/tijd-waarden
Hier is een voorbeeld dat datetime-waarden gebruikt:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');
Resultaat:
+--------------------------------------------------------+ | DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') | +--------------------------------------------------------+ | 5 | +--------------------------------------------------------+
Hier is nog een voorbeeld:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59');
Resultaat:
+--------------------------------------------------------+ | DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') | +--------------------------------------------------------+ | 0 | +--------------------------------------------------------+
In dit geval, hoewel het bijna een hele dag was, was het niet helemaal, en dus is het resultaat 0
.
Huidige datum
Hier passeren we NOW()
als tweede argument:
SELECT
NOW(),
DATEDIFF('2030-01-20', NOW());
Resultaat:
+---------------------+-------------------------------+ | NOW() | DATEDIFF('2030-01-20', NOW()) | +---------------------+-------------------------------+ | 2021-05-10 10:03:08 | 3177 | +---------------------+-------------------------------+
In dit geval zijn er 3.177 dagen tussen nu en de tweede datum.
Ongeldige argumenten
Bij het doorgeven van ongeldige argumenten, DATEDIFF()
retourneert null
:
SELECT DATEDIFF('Homer', 'Simpson');
Resultaat:
+------------------------------+ | DATEDIFF('Homer', 'Simpson') | +------------------------------+ | NULL | +------------------------------+
Ontbrekend argument
Bellen DATEDIFF()
het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT DATEDIFF();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'
En:
SELECT DATEDIFF('2030-05-21');
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'