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.