Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PERIOD_ADD() Exemplos – MySQL


MySQL tem um PERIOD_ADD() função que permite adicionar um número de meses a um determinado período. Ele retorna um valor no formato AAAAMM .

Este artigo fornece exemplos para demonstrar como funciona.


Sintaxe


A sintaxe fica assim:
PERIOD_ADD(P,N)

Onde P é o período e N é o número de meses para adicionar.

Observe que, embora essa função pareça adicionar meses a uma data, o argumento de período não é realmente um valor de data.

Exemplo 1 – Uso básico


Aqui está um exemplo básico.
SELECT PERIOD_ADD(202101,2);

Resultado:
+----------------------+| PERIOD_ADD(202101,2) |+----------------------+| 202103 |+----------------------+

Então, neste caso, adicionamos dois meses ao período.

Exemplo 2 – Valores negativos


Aqui está um exemplo que adiciona um número negativo de meses.
SELECT PERIOD_ADD(202101,-2);

Resultado:
+-----------------------+| PERIOD_ADD(202101,-2) |+-----------------------+| 202011 |+-----------------------+

Exemplo 3 – Anos de dois dígitos


Este exemplo usa um componente de ano de dois dígitos.
SELECT PERIOD_ADD(2101,2);

Resultado:
+--------------------+| PERIOD_ADD(2101,2) |+--------------------+| 202103 |+--------------------+

Você notará que o resultado ainda usa um ano de quatro dígitos (mesmo que tenhamos fornecido o argumento de período como um ano de dois dígitos).

Exemplo 4 – Usando a data atual


Este exemplo deriva o período da data atual. Em seguida, adiciona um mês a esse período.
SELECT CURDATE( ) AS 'Current Date', EXTRACT(YEAR_MONTH FROM CURDATE( )) AS 'Current Period', PERIOD_ADD(EXTRACT(YEAR_MONTH FROM CURDATE( )), 1) AS 'Next Period';

Resultado:
+--------------+----------------+-------------+ | Data atual | Período atual | Próximo período |+--------------+----------------+-------------+ | 30-06-2018 | 201806 | 201807 |+--------------+----------------+-------------+ 

Exemplo 5 – Um exemplo de banco de dados


Aqui está um exemplo que consulta um banco de dados.
USE sakila;SELECT payment_date AS 'Payment Date', EXTRACT(YEAR_MONTH FROM payment_date) AS 'Payment Period', PERIOD_ADD(EXTRACT(YEAR_MONTH FROM payment_date), 12) AS 'Próximo pagamento'FROM paymentWHERE payment_id =1; 
Resultado:
+---------------------+----------------+----------- -------+| Data de Pagamento | Período de pagamento | Próximo pagamento |+---------------------+----------------+----------- -------+| 25-05-2005 11:30:37 | 200505 | 200605 |+---------------------+----------------+------------ ------+