MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona PERIOD_DIFF() in MariaDB

In MariaDB, PERIOD_DIFF() è una funzione di data e ora incorporata che restituisce il numero di mesi tra due periodi.

Sintassi

La sintassi è questa:

PERIOD_DIFF(P1,P2)

Dove P1 e P2 sono i periodi tra i quali fare la differenza.

Entrambi gli argomenti sono nel formato AAMM o AAAAMM. Non sono valori di data.

Esempio

Ecco un esempio:

SELECT PERIOD_DIFF(202108, 202101);

Risultato:

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

In questo esempio, ci sono sette mesi di differenza tra i due periodi.

Cambia l'ordine

Se il primo periodo è precedente al secondo, il risultato è un valore negativo.

Ecco cosa succede quando cambio l'ordine degli argomenti nell'esempio precedente:

SELECT PERIOD_DIFF(202101, 202108);

Risultato:

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

Anni a due cifre

Se uno qualsiasi degli argomenti contiene un anno a due cifre, i valori da 00 a 69 vengono convertiti da 2000 a 2069, mentre i valori da 70 vengono convertiti da 1970 in su.

Esempio:

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

Risultato:

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

Argomento mancante

Chiamando PERIOD_DIFF() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:

SELECT PERIOD_DIFF();

Risultato:

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

E un altro esempio:

SELECT PERIOD_DIFF( 6912 );

Risultato:

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