sql >> Base de Datos >  >> RDS >> MariaDB

6 formas de agregar un año a una fecha en MariaDB

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.