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 YYMM
ou 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 formatoYYMM
ouYYYYMM
).P2
: O segundo período (no formatoYYMM
ouYYYYMM
).
A PERIOD_DIFF()
função retorna o número de meses entre esses dois períodos.
Se P1
ou P2
for 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 NULL
se 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 loans
tabela:
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 formatoYYMM
ouYYYYMM
.