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

Comment PERIOD_DIFF() fonctionne dans MariaDB

Dans MariaDB, PERIOD_DIFF() est une fonction de date et d'heure intégrée qui renvoie le nombre de mois entre deux périodes.

Syntaxe

La syntaxe ressemble à ceci :

PERIOD_DIFF(P1,P2)

P1 et P2 sont les périodes pour obtenir la différence entre.

Les deux arguments sont au format AAMM ou AAAAMM. Ce ne sont pas des valeurs de date.

Exemple

Voici un exemple :

SELECT PERIOD_DIFF(202108, 202101);

Résultat :

+-----------------------------+
| PERIOD_DIFF(202108, 202101) |
+-----------------------------+
|                           7 |
+-----------------------------+

Dans cet exemple, il y a sept mois de différence entre les deux périodes.

Changer l'ordre

Si la première période est antérieure à la seconde, le résultat est une valeur négative.

Voici ce qui se passe lorsque je change l'ordre des arguments dans l'exemple précédent :

SELECT PERIOD_DIFF(202101, 202108);

Résultat :

+-----------------------------+
| PERIOD_DIFF(202101, 202108) |
+-----------------------------+
|                          -7 |
+-----------------------------+

Années à deux chiffres

Si l'un des arguments contient une année à deux chiffres, les valeurs de 00 à 69 sont converties de 2000 à 2069, tandis que les valeurs de 70 sont converties à partir de 1970.

Exemple :

SELECT 
    PERIOD_DIFF(6911, 6912),
    PERIOD_DIFF(6911, 7001);

Résultat :

+-------------------------+-------------------------+
| PERIOD_DIFF(6911, 6912) | PERIOD_DIFF(6911, 7001) |
+-------------------------+-------------------------+
|                      -1 |                    1198 |
+-------------------------+-------------------------+

Argument manquant

Appel de PERIOD_DIFF() avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :

SELECT PERIOD_DIFF();

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'

Et un autre exemple :

SELECT PERIOD_DIFF( 6912 );

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'