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)
Où 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'