O MariaDB fornece várias maneiras de adicionar um ano ou um certo número de anos a uma determinada data. Por exemplo, você pode querer adicionar 1 ano, 10 anos, 30 anos, etc.
Aqui estão 6 maneiras de adicionar um ano 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 YEAR);
Resultado:
+-----------------------------------------+| DATE_ADD('2021-05-01', INTERVAL 1 ANO) |+------------------------------------------------ -------+| 2022-05-01 |+------------------------------------------+
Não existe uma regra que diga que só pode ser 1 ano. Você pode adicionar vários anos. De qualquer forma, oYEAR
palavra-chave permanece não plural:
SELECT DATE_ADD('2021-05-01', INTERVAL 10 YEAR);
Resultado:
+------------------------------------------+| DATE_ADD('2021-05-01', INTERVAL 10 YEAR) |+------------------------------------------------ --------+| 2031-05-01 |+-----------------------------------------------------+
Também é possível usar outra unidade de data/hora com o número apropriado dessa unidade. No entanto, essa abordagem deve ser usada com cautela, pois pode resultar em resultados inesperados.
Exemplo:
SELECT DATE_ADD('2021-05-01', INTERVAL 365 DAY) AS Days, DATE_ADD('2021-05-01', INTERVAL 52 WEEK) AS Weeks, DATE_ADD('2021-05-01', INTERVAL 12 MONTH) AS Months, DATE_ADD('2021-05-01', INTERVAL 1 YEAR) AS Years;
Resultado:
+------------+------------+------------+------- -----+| Dias | Semanas | Meses | Anos |+------------+------------+------------+-------- ----+| 01-05-2022 | 30-04-2022 | 01-05-2022 | 2022-05-01 |+------------+------------+------------+---- --------+
Nesse caso, adicionar 52 semanas teve um resultado diferente de usar 365 dias, 12 meses e 1 ano.
Se avançarmos a data alguns anos, teremos ainda mais inconsistência:
SELECT DATE_ADD('2023-05-01', INTERVAL 365 DAY) AS Days, DATE_ADD('2023-05-01', INTERVAL 52 WEEK) AS Weeks, DATE_ADD('2023-05-01', INTERVAL 12 MONTH) AS Months, DATE_ADD('2023-05-01', INTERVAL 1 YEAR) AS Years;
Resultado:
+------------+------------+------------+------- -----+| Dias | Semanas | Meses | Anos |+------------+------------+------------+-------- ----+| 30-04-2024 | 29-04-2024 | 01-05-2024 | 01-05-2024 |+------------+------------+------------+---- --------+
Desta vez usandoMONTH
eYEAR
retorna o mesmo resultado, masDAY
eWEEK
retorna duas datas diferentes, ambas diferentes doMONTH
eYEAR
resultados.
O
ADDDATE()
Função
Outra maneira de adicionar um ano 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 YEAR);
Resultado:
+----------------------------------------+| ADDDATE('2021-05-01', INTERVAL 1 ANO) |+------------------------------------------------ ------+| 01-05-2022 |+-------------------------------------------------------+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 YEAR);
Resultado:
+------------------------------------------+| DATE_SUB('2021-05-01', INTERVAL -1 ANO) |+------------------------------------------------ ---------+| 2022-05-01 |+-----------------------------------------------------+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 YEAR);
Resultado:
+-----------------------------------------+| SUBDATE('2021-05-01', INTERVAL -1 ANO) |+--------------------------------- --------+| 2022-05-01 |+------------------------------------------+
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 anos à nossa data.
Exemplo:
SELECT '2021-05-01' + INTERVAL 1 YEAR;
Resultado:
+--------------------------------+| '2021-05-01' + INTERVALO 1 ANO |+--------------------------------+| 01-05-2022 |+--------------------------------+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 YEAR;
Resultado:
+---------------------------------+| '2021-05-01' - INTERVAL -1 ANO |+---------------------------------+| 01-05-2022 |+---------------------------------+Outras unidades de data e hora
Os exemplos acima adicionam vários anos à 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.