Dans MariaDB, DATEDIFF()
est une fonction de date et d'heure intégrée qui renvoie la différence, en jours, entre deux dates.
Il accepte deux arguments, qui sont tous deux des expressions date ou datetime. Il soustrait ensuite la deuxième date de la première.
Syntaxe
La syntaxe ressemble à ceci :
DATEDIFF(expr1,expr2)
Il renvoie ensuite expr1 - expr2
.
Exemple
Voici un exemple :
SELECT DATEDIFF('2030-01-25', '2030-01-20');
Résultat :
+--------------------------------------+ | DATEDIFF('2030-01-25', '2030-01-20') | +--------------------------------------+ | 5 | +--------------------------------------+
Le voici à nouveau, mais avec les dates inversées :
SELECT DATEDIFF('2030-01-20', '2030-01-25');
Résultat :
+--------------------------------------+ | DATEDIFF('2030-01-20', '2030-01-25') | +--------------------------------------+ | -5 | +--------------------------------------+
Valeurs DateHeure
Voici un exemple qui utilise des valeurs datetime :
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');
Résultat :
+--------------------------------------------------------+ | DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') | +--------------------------------------------------------+ | 5 | +--------------------------------------------------------+
Voici un autre exemple :
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59');
Résultat :
+--------------------------------------------------------+ | DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') | +--------------------------------------------------------+ | 0 | +--------------------------------------------------------+
Dans ce cas, même si c'était presque une journée entière, ce n'était pas tout à fait, et donc le résultat est 0
.
Date actuelle
Ici, nous passons NOW()
comme deuxième argument :
SELECT
NOW(),
DATEDIFF('2030-01-20', NOW());
Résultat :
+---------------------+-------------------------------+ | NOW() | DATEDIFF('2030-01-20', NOW()) | +---------------------+-------------------------------+ | 2021-05-10 10:03:08 | 3177 | +---------------------+-------------------------------+
Dans ce cas, il y a 3 177 jours entre maintenant et la deuxième date.
Arguments invalides
Lorsqu'un argument invalide est passé, DATEDIFF()
renvoie null
:
SELECT DATEDIFF('Homer', 'Simpson');
Résultat :
+------------------------------+ | DATEDIFF('Homer', 'Simpson') | +------------------------------+ | NULL | +------------------------------+
Argument manquant
Appel de DATEDIFF()
le mauvais nombre d'arguments, ou l'absence d'arguments, entraîne une erreur :
SELECT DATEDIFF();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'
Et :
SELECT DATEDIFF('2030-05-21');
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'