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 oMONTH
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 oADDDATE()
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 doDATE_ADD()
função acima. Ao usar esta sintaxe,ADDDATE()
é um sinônimo paraDATE_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
ODATE_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
OSUBDATE()
função é sinônimo deDATE_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 é chamadaADD_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.