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, o YEAR 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 usando MONTH e YEAR retorna o mesmo resultado, mas DAY e WEEK retorna duas datas diferentes, ambas diferentes do MONTH e YEAR resultados.
O ADDDATE() Função
Outra maneira de adicionar um ano 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 YEAR);
Resultado:
+----------------------------------------+| ADDDATE('2021-05-01', INTERVAL 1 ANO) |+------------------------------------------------ ------+| 01-05-2022 |+-------------------------------------------------------+ 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 YEAR);
Resultado:
+------------------------------------------+| DATE_SUB('2021-05-01', INTERVAL -1 ANO) |+------------------------------------------------ ---------+| 2022-05-01 |+-----------------------------------------------------+ 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 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.