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.