MariaDB proporciona varias formas de agregar un año o una cierta cantidad de años a una fecha determinada. Por ejemplo, es posible que desee agregar 1 año, 10 años, 30 años, etc.
Aquí hay 6 formas de agregar un año a una fecha en MariaDB.
El DATE_ADD() Función
El DATE_ADD() La función le permite agregar una cantidad a una fecha. Por ejemplo, puede agregar una cantidad de días, semanas, meses, años, etc.
Ejemplo:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 YEAR); Resultado:
+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 1 YEAR) |
+-----------------------------------------+
| 2022-05-01 |
+-----------------------------------------+
No hay una regla que diga que solo puede ser 1 año. Puede agregar varios años. De cualquier manera, el YEAR la palabra clave permanece sin plural:
SELECT DATE_ADD('2021-05-01', INTERVAL 10 YEAR); Resultado:
+------------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 10 YEAR) |
+------------------------------------------+
| 2031-05-01 |
+------------------------------------------+ También es posible usar otra unidad de fecha/hora con el número apropiado de esa unidad. Sin embargo, este enfoque debe usarse con precaución, ya que podría generar resultados inesperados.
Ejemplo:
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:
+------------+------------+------------+------------+ | Days | Weeks | Months | Years | +------------+------------+------------+------------+ | 2022-05-01 | 2022-04-30 | 2022-05-01 | 2022-05-01 | +------------+------------+------------+------------+
En este caso, agregar 52 semanas tuvo un resultado diferente a usar 365 días, 12 meses y 1 año.
Si adelantamos la fecha un par de años, obtenemos aún más inconsistencia:
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:
+------------+------------+------------+------------+ | Days | Weeks | Months | Years | +------------+------------+------------+------------+ | 2024-04-30 | 2024-04-29 | 2024-05-01 | 2024-05-01 | +------------+------------+------------+------------+
Esta vez usando MONTH y YEAR devuelve el mismo resultado, pero DAY y WEEK devuelve dos fechas diferentes, ambas diferentes al MONTH y YEAR resultados.
El ADDDATE() Función
Otra forma de agregar un año a una fecha es usar ADDDATE() función. Esta función tiene dos sintaxis. Una sintaxis le permite agregar una cantidad de días a una fecha. La otra sintaxis es la misma que con DATE_ADD() función de arriba. Al usar esta sintaxis, ADDDATE() es un sinónimo de DATE_ADD() .
Ejemplo:
SELECT ADDDATE('2021-05-01', INTERVAL 1 YEAR); Resultado:
+----------------------------------------+
| ADDDATE('2021-05-01', INTERVAL 1 YEAR) |
+----------------------------------------+
| 2022-05-01 |
+----------------------------------------+ El DATE_SUB() Función
El DATE_SUB() función le permite restar una cantidad a una fecha. Sin embargo, si proporciona un valor negativo para restar, entonces termina siendo sumado a la fecha.
Ejemplo:
SELECT DATE_SUB('2021-05-01', INTERVAL -1 YEAR); Resultado:
+------------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL -1 YEAR) |
+------------------------------------------+
| 2022-05-01 |
+------------------------------------------+ El SUBDATE() Función
El SUBDATE() función es un sinónimo de DATE_SUB() cuando se usa la siguiente sintaxis.
Ejemplo:
SELECT SUBDATE('2021-05-01', INTERVAL -1 YEAR); Resultado:
+-----------------------------------------+
| SUBDATE('2021-05-01', INTERVAL -1 YEAR) |
+-----------------------------------------+
| 2022-05-01 |
+-----------------------------------------+
El + Operador
Otra opción es usar el + operador.
El + El operador se usa para realizar sumas, y podemos usarlo en fechas, junto con la unidad de fecha/hora aplicable para agregar una cierta cantidad de años a nuestra fecha.
Ejemplo:
SELECT '2021-05-01' + INTERVAL 1 YEAR; Resultado:
+--------------------------------+ | '2021-05-01' + INTERVAL 1 YEAR | +--------------------------------+ | 2022-05-01 | +--------------------------------+
El - Operador
El - El operador se puede utilizar para restar una cantidad de una fecha. Pero si se usa para restar un número negativo, entonces el resultado es una cantidad positiva que se agrega a la fecha:
SELECT '2021-05-01' - INTERVAL -1 YEAR; Resultado:
+---------------------------------+ | '2021-05-01' - INTERVAL -1 YEAR | +---------------------------------+ | 2022-05-01 | +---------------------------------+
Otras unidades de fecha y hora
Los ejemplos anteriores agregan una cantidad de años a la fecha, pero podemos usar las mismas técnicas para agregar cualquier unidad de fecha/hora. Consulte Unidades de fecha y hora de MariaDB para obtener una lista completa de las unidades de fecha/hora que se pueden usar con las funciones y el operador anteriores.