Função MySQL PERIOD_DIFF()

Resumo : neste tutorial você aprenderá como usar a PERIOD_DIFF()função MySQL para calcular o número de meses entre dois períodos.

Introdução à função MySQL PERIOD_DIFF()

A PERIOD_DIFF()função calcula o número de meses entre dois períodos no formato YYMMou YYYYMM.

Aqui está a sintaxe da PERIOD_DIFF()função:

PERIOD_DIFF(P1, P2)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • P1: O primeiro ponto (no formato YYMMou YYYYMM).
  • P2: O segundo período (no formato YYMMou YYYYMM).

A PERIOD_DIFF()função retorna o número de meses entre esses dois períodos.

Se P1ou P2for NULL, a PERIOD_DIFF()função retornará NULL.

Exemplos de funções MySQL PERIOD_DIFF()

Vejamos alguns exemplos de uso da PERIOD_DIFF()função.

1) Calculando a diferença entre dois períodos

Vamos começar com um exemplo básico:

SELECT PERIOD_DIFF(200802, 200703);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-----------------------------+
| PERIOD_DIFF(200802, 200703) |
+-----------------------------+
|                          11 |
+-----------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste exemplo, utilizamos PERIOD_DIFF()para calcular a diferença entre os períodos '200802'e '200703', que é de 11 meses.

2) Usando a função PERIOD_ADD() com valores NULL

A PERIOD_ADD()função retorna NULLse um dos argumentos for NULL. Por exemplo:

SELECT PERIOD_DIFF(NULL, '202112');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-----------------------------+
| PERIOD_DIFF(NULL, '202112') |
+-----------------------------+
|                        NULL |
+-----------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

3) Usando PERIOD_DIFF() em um aplicativo do mundo real

Suponha que você tenha um banco de dados com informações sobre empréstimos. E você deseja calcular a duração do empréstimo em meses com base nos períodos de desembolso e vencimento.

Primeiro, crie uma tabela para armazenar dados de empréstimos:

CREATE TABLE loans (
    loan_id INT AUTO_INCREMENT PRIMARY KEY,
    disbursement_period VARCHAR(6),
    maturity_period VARCHAR(6)
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A tabela de empréstimos armazena dados de empréstimos com períodos de desembolso e vencimento no formato YYYYMM.

Segundo, insira algumas linhas na loanstabela:

INSERT INTO loans (disbursement_period, maturity_period) 
VALUES
    ('202201', '202401'),
    ('202305', '202505'),
    ('202112', '202306');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, calcule a duração do empréstimo para cada empréstimo usando PERIOD_DIFF()a função:

SELECT 
  disbursement_period, 
  maturity_period, 
  PERIOD_DIFF(
    maturity_period, disbursement_period
  ) AS loan_duration_months 
FROM 
  loans;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------------------+-----------------+----------------------+
| disbursement_period | maturity_period | loan_duration_months |
+---------------------+-----------------+----------------------+
| 202201              | 202401          |                   24 |
| 202305              | 202505          |                   24 |
| 202112              | 202306          |                   18 |
+---------------------+-----------------+----------------------+
3 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A consulta utiliza a PERIOD_DIFF()função para calcular a duração do empréstimo em meses para cada empréstimo.

Resumo

  • Utilize PERIOD_DIFF()a função para calcular a diferença em meses entre dois períodos representados no formato YYMMou YYYYMM.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *