W MariaDB, PERIOD_DIFF()
to wbudowana funkcja daty i czasu, która zwraca liczbę miesięcy między dwoma okresami.
Składnia
Składnia wygląda tak:
PERIOD_DIFF(P1,P2)
Gdzie P1
i P2
to okresy, w których można uzyskać różnicę między nimi.
Oba argumenty mają format RRMM lub RRRRMM. Nie są to wartości dat.
Przykład
Oto przykład:
SELECT PERIOD_DIFF(202108, 202101);
Wynik:
+-----------------------------+ | PERIOD_DIFF(202108, 202101) | +-----------------------------+ | 7 | +-----------------------------+
W tym przykładzie występuje różnica siedmiu miesięcy między tymi dwoma okresami.
Zmień kolejność
Jeśli pierwszy okres jest wcześniejszy niż drugi, wynik jest wartością ujemną.
Oto, co się stanie, gdy zmienię kolejność argumentów w poprzednim przykładzie:
SELECT PERIOD_DIFF(202101, 202108);
Wynik:
+-----------------------------+ | PERIOD_DIFF(202101, 202108) | +-----------------------------+ | -7 | +-----------------------------+
Dwucyfrowe lata
Jeśli którykolwiek z argumentów zawiera dwucyfrowy rok, wartości od 00 do 69 są konwertowane na od 2000 do 2069, a wartości od 70 na 1970 w górę.
Przykład:
SELECT
PERIOD_DIFF(6911, 6912),
PERIOD_DIFF(6911, 7001);
Wynik:
+-------------------------+-------------------------+ | PERIOD_DIFF(6911, 6912) | PERIOD_DIFF(6911, 7001) | +-------------------------+-------------------------+ | -1 | 1198 | +-------------------------+-------------------------+
Brakujący argument
Wywołanie PERIOD_DIFF()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT PERIOD_DIFF();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'
I kolejny przykład:
SELECT PERIOD_DIFF( 6912 );
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'