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

6 maneiras de adicionar um mês a uma data no MariaDB


O MariaDB fornece várias maneiras de realizar aritmética em datas. Isso inclui adicionar ou subtrair um mês (ou muitos meses) de uma determinada data.

Aqui estão 6 maneiras de adicionar um mês a uma data no MariaDB.

Atualização de bônus :agora adicionei uma 7ª maneira de adicionar um mês a uma data no final deste artigo. Então eu acho que agora são 7 maneiras de adicionar um mês a uma data no MariaDB 🙂

O DATE_ADD() Função


O DATE_ADD() A função permite adicionar um valor a uma data. Por exemplo, você pode adicionar um número de dias, semanas, meses, anos etc.

Exemplo:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH); 

Resultado:
+------------------------------------------+| DATE_ADD('2021-05-01', INTERVAL 1 MONTH) |+------------------------------------------------ --------+| 01/06/2021 |+-----------------------------------------------------+ 

Se você precisar adicionar mais de um mês, basta usar esse número em vez de 1 . No entanto, o MONTH palavra-chave permanece não plural, independentemente:
SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH); 

Resultado:
+------------------------------------------+| DATE_ADD('2021-05-01', INTERVAL 2 MONTH) |+------------------------------------------------ --------+| 01/07/2021 |+-----------------------------------------------------+ 

Também é possível usar outra unidade de data/hora com o número apropriado dessa unidade. Portanto, você pode especificar um certo número de dias, como 30 ou 31.

Exemplo:
SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY); 

Resultado:
+-----------------------------------------+| DATE_ADD('2021-05-01', INTERVAL 31 DAY) |+------------------------------------------------ -------+| 2021-06-01 |+------------------------------------------+ 
Ao usar dias, se for exatamente um mês ou não, dependerá do mês em questão. No exemplo acima, eu poderia ter fornecido 30 dias, mas isso nos manteria no mesmo mês:
SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY); 

Resultado:
+-----------------------------------------+| DATE_ADD('2021-05-01', INTERVAL 30 DAY) |+------------------------------------------------ -------+| 31/05/2021 |+--------------------------------------------------------+ 
Então, se você realmente deseja adicionar um mês, então o MONTH unidade é muito mais fácil do que tentar descobrir quantos dias adicionar.

O ADDDATE() Função


Outra maneira de adicionar um mês a uma data é usar o ADDDATE() função. Esta função tem duas sintaxes. Uma sintaxe permite adicionar um número de dias a uma data. A outra sintaxe é a mesma do DATE_ADD() função acima. Ao usar esta sintaxe, ADDDATE() é um sinônimo para DATE_ADD() .

Exemplo:
SELECT ADDDATE('2021-05-01', INTERVAL 1 MONTH); 

Resultado:
+-----------------------------------------+| ADDDATE('2021-05-01', INTERVAL 1 MONTH) |+------------------------------------------------ -------+| 2021-06-01 |+------------------------------------------+ 

O DATE_SUB() Função


O DATE_SUB() função permite subtrair uma quantia para uma data. No entanto, se você fornecer um valor negativo para subtrair, ele acaba sendo adicionado à data.

Exemplo:
SELECT DATE_SUB('2021-05-01', INTERVAL -1 MONTH); 

Resultado:
+-------------------------------------------+| DATE_SUB('2021-05-01', INTERVAL -1 MONTH) |+------------------------------------------------ ----------+| 01/06/2021 |+------------------------------------------------------ +

O SUBDATE() Função


O SUBDATE() função é sinônimo de DATE_SUB() ao usar a sintaxe a seguir.

Exemplo:
SELECT SUBDATE('2021-05-01', INTERVAL -1 MONTH); 

Resultado:
+------------------------------------------+| SUBDATE('2021-05-01', INTERVAL -1 MONTH) |+--------------------------------- ---------+| 01/06/2021 |+-----------------------------------------------------+ 

O + Operador


Outra opção é usar o + operador.

O + operador é usado para realizar a adição, e podemos usá-lo em datas, juntamente com a unidade de data/hora aplicável para adicionar um certo número de meses à nossa data.

Exemplo:
SELECT '2021-05-01' + INTERVAL 1 MONTH; 

Resultado:
+---------------------------------+| '2021-05-01' + INTERVALO 1 MÊS |+---------------------------------+| 01/06/2021 |+---------------------------------+

O - Operador


O - pode ser usado para subtrair um valor de uma data. Mas se for usado para subtrair um número negativo, o resultado será um valor positivo sendo adicionado à data:
SELECT '2021-05-01' - INTERVAL -1 MONTH; 

Resultado:
+----------------------------------+| '2021-05-01' - INTERVALO -1 MÊS |+-------------------------------------------------+| 01/06/2021 |+------------------------------------------------+

Bônus:O ADD_MONTHS() Função


Desde que escrevi este artigo, uma nova função foi introduzida no MariaDB especificamente para adicionar meses a uma data.

A função é chamada ADD_MONTHS() , e foi introduzido no MariaDB 10.6.1 para aprimorar a compatibilidade do Oracle.

Então, acho que este artigo deveria se chamar 7 maneiras de adicionar um mês a uma data… 🙂

Exemplo:
SELECT ADD_MONTHS('2020-01-01', 3); 

Resultado:
+-----------------------------+| ADD_MONTHS('2020-01-01', 3) |+-----------------------------+| 01-04-2020 |+-----------------------------+

Outras unidades de data e hora


Os exemplos acima adicionam um número de meses à data, mas podemos usar as mesmas técnicas para adicionar qualquer unidade de data/hora. Consulte Unidades de data e hora do MariaDB para obter uma lista completa de unidades de data/hora que podem ser usadas com as funções e o operador acima.