MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como PERIOD_DIFF() funciona no MariaDB


No MariaDB, PERIOD_DIFF() é uma função interna de data e hora que retorna o número de meses entre dois períodos.

Sintaxe


A sintaxe fica assim:
PERIOD_DIFF(P1,P2)

Onde P1 e P2 são os períodos para obter a diferença entre.

Ambos os argumentos estão no formato YYMM ou YYYYMM. Eles não são valores de data.

Exemplo


Aqui está um exemplo:
SELECT PERIOD_DIFF(202108, 202101);

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

Neste exemplo, há sete meses de diferença entre os dois períodos.

Mudar o pedido


Se o primeiro período for um período anterior ao segundo, o resultado será um valor negativo.

Veja o que acontece quando mudo a ordem dos argumentos no exemplo anterior:
SELECT PERIOD_DIFF(202101, 202108);

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

Anos de dois dígitos


Se algum dos argumentos contiver um ano de dois dígitos, os valores de 00 a 69 serão convertidos de 2000 a 2069, enquanto os valores de 70 serão convertidos de 1970 para cima.

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

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

Argumento ausente


Chamando PERIOD_DIFF() com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT PERIOD_DIFF();

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

E outro exemplo:
SELECT PERIOD_DIFF( 6912 );

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