MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie PERIOD_DIFF() in MariaDB funktioniert

In MariaDB, PERIOD_DIFF() ist eine integrierte Datums- und Uhrzeitfunktion, die die Anzahl der Monate zwischen zwei Perioden zurückgibt.

Syntax

Die Syntax lautet wie folgt:

PERIOD_DIFF(P1,P2)

Wobei P1 und P2 sind die Perioden, zwischen denen die Differenz ermittelt werden soll.

Beide Argumente haben das Format JJMM oder JJJJMM. Sie sind keine Datumswerte.

Beispiel

Hier ist ein Beispiel:

SELECT PERIOD_DIFF(202108, 202101);

Ergebnis:

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

In diesem Beispiel liegen sieben Monate zwischen den beiden Zeiträumen.

Ändern Sie die Reihenfolge

Wenn die erste Periode eine frühere Periode als die zweite ist, ist das Ergebnis ein negativer Wert.

Folgendes passiert, wenn ich die Reihenfolge der Argumente im vorherigen Beispiel ändere:

SELECT PERIOD_DIFF(202101, 202108);

Ergebnis:

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

Zweistellige Jahreszahlen

Wenn eines der Argumente eine zweistellige Jahreszahl enthält, werden Werte von 00 bis 69 in 2000 bis 2069 konvertiert, während Werte von 70 in 1970 aufwärts konvertiert werden.

Beispiel:

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

Ergebnis:

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

Fehlendes Argument

Aufruf von PERIOD_DIFF() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT PERIOD_DIFF();

Ergebnis:

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

Und noch ein Beispiel:

SELECT PERIOD_DIFF( 6912 );

Ergebnis:

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