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

6 formas de agregar un mes a una fecha en MariaDB

MariaDB proporciona varias formas de realizar operaciones aritméticas en fechas. Esto incluye sumar o restar un mes (o muchos meses) de una fecha dada.

Aquí hay 6 formas de agregar un mes a una fecha en MariaDB.

Actualización adicional :ahora he agregado una séptima forma de agregar un mes a una fecha al final de este artículo. Supongo que ahora hay 7 formas de agregar un mes 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 MONTH);

Resultado:

+------------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 1 MONTH) |
+------------------------------------------+
| 2021-06-01                               |
+------------------------------------------+

Si necesita agregar más de un mes, simplemente use ese número en lugar de 1 . Sin embargo, el MONTH la palabra clave permanece sin plural independientemente de:

SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH);

Resultado:

+------------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 2 MONTH) |
+------------------------------------------+
| 2021-07-01                               |
+------------------------------------------+

También es posible usar otra unidad de fecha/hora con el número apropiado de esa unidad. Por lo tanto, podría especificar un cierto número de días, como 30 o 31.

Ejemplo:

SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY);

Resultado:

+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 31 DAY) |
+-----------------------------------------+
| 2021-06-01                              |
+-----------------------------------------+

Al usar días, si resulta ser exactamente un mes o no, dependerá del mes en cuestión. En el ejemplo anterior, podría haber proporcionado 30 días, pero eso nos habría mantenido dentro del mismo mes:

SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);

Resultado:

+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 30 DAY) |
+-----------------------------------------+
| 2021-05-31                              |
+-----------------------------------------+

Entonces, si realmente desea agregar un mes, entonces el MONTH unidad es mucho más fácil que tratar de calcular cuántos días agregar.

El ADDDATE() Función

Otra forma de agregar un mes 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 MONTH);

Resultado:

+-----------------------------------------+
| ADDDATE('2021-05-01', INTERVAL 1 MONTH) |
+-----------------------------------------+
| 2021-06-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 MONTH);

Resultado:

+-------------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL -1 MONTH) |
+-------------------------------------------+
| 2021-06-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 MONTH);

Resultado:

+------------------------------------------+
| SUBDATE('2021-05-01', INTERVAL -1 MONTH) |
+------------------------------------------+
| 2021-06-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 meses a nuestra fecha.

Ejemplo:

SELECT '2021-05-01' + INTERVAL 1 MONTH;

Resultado:

+---------------------------------+
| '2021-05-01' + INTERVAL 1 MONTH |
+---------------------------------+
| 2021-06-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 MONTH;

Resultado:

+----------------------------------+
| '2021-05-01' - INTERVAL -1 MONTH |
+----------------------------------+
| 2021-06-01                       |
+----------------------------------+

Bonificación:El ADD_MONTHS() Función

Desde que escribí este artículo por primera vez, se ha introducido una nueva función en MariaDB específicamente para agregar meses a una fecha.

La función se llama ADD_MONTHS() , y se introdujo en MariaDB 10.6.1 para mejorar la compatibilidad con Oracle.

Así que supongo que este artículo debería llamarse 7 formas de agregar un mes a una fecha... 🙂

Ejemplo:

SELECT ADD_MONTHS('2020-01-01', 3);

Resultado:

+-----------------------------+
| ADD_MONTHS('2020-01-01', 3) |
+-----------------------------+
| 2020-04-01                  |
+-----------------------------+

Otras unidades de fecha y hora

Los ejemplos anteriores agregan una cantidad de meses 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.