MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment fonctionne DATEDIFF() dans MariaDB

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'