In MariaDB, PERIOD_DIFF()
is een ingebouwde datum- en tijdfunctie die het aantal maanden tussen twee perioden retourneert.
Syntaxis
De syntaxis gaat als volgt:
PERIOD_DIFF(P1,P2)
Waar P1
en P2
zijn de perioden om het verschil tussen te krijgen.
Beide argumenten hebben de indeling JJMM of JJJJMM. Het zijn geen datumwaarden.
Voorbeeld
Hier is een voorbeeld:
SELECT PERIOD_DIFF(202108, 202101);
Resultaat:
+-----------------------------+ | PERIOD_DIFF(202108, 202101) | +-----------------------------+ | 7 | +-----------------------------+
In dit voorbeeld zijn er zeven maanden verschil tussen de twee perioden.
De volgorde wijzigen
Als de eerste periode een eerdere periode is dan de tweede, is het resultaat een negatieve waarde.
Dit is wat er gebeurt als ik de volgorde van de argumenten in het vorige voorbeeld verander:
SELECT PERIOD_DIFF(202101, 202108);
Resultaat:
+-----------------------------+ | PERIOD_DIFF(202101, 202108) | +-----------------------------+ | -7 | +-----------------------------+
Tweecijferige jaren
Als een van de argumenten een jaartal van twee cijfers bevat, worden waarden van 00 tot 69 geconverteerd naar 2000 tot 2069, terwijl waarden vanaf 70 worden geconverteerd naar 1970.
Voorbeeld:
SELECT
PERIOD_DIFF(6911, 6912),
PERIOD_DIFF(6911, 7001);
Resultaat:
+-------------------------+-------------------------+ | PERIOD_DIFF(6911, 6912) | PERIOD_DIFF(6911, 7001) | +-------------------------+-------------------------+ | -1 | 1198 | +-------------------------+-------------------------+
Ontbrekend argument
Aanroepen van PERIOD_DIFF()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT PERIOD_DIFF();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'
En nog een voorbeeld:
SELECT PERIOD_DIFF( 6912 );
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'