ADDDATE()

ADDDATE(date,INTERVAL expr type) 
ADDDATE(expr,days)

Cuando se invoca con el formato INTERVAL para el segundo argumento, ADDDATE() es sinonimo de . La función relacionada es sinónimo de .

mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
+-----------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY) |
+-----------------------------------------+
| 1998-02-02                              |
+-----------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
+----------------------------------------+
| ADDDATE('1998-01-02', INTERVAL 31 DAY) |
+----------------------------------------+
| 1998-02-02                             |
+----------------------------------------+
1 row in set (0.00 sec)

Desde MySQL 4.1.1, se permite la segunda sintaxis, donde expr es una fecha o una expresión 'datetime' y days es el número de días a añadir a expr.

mysql> SELECT ADDDATE('1998-01-02', 31);
+---------------------------+
| ADDDATE('1998-01-02', 31) |
+---------------------------+
| 1998-02-02                |
+---------------------------+


suministrado por FreeFind
Valid HTML 4.0! Valid CSS!

Comentarios de los usuarios (2)

Cesar
2012-06-07 22:09:45

tengo una duda, como se puede utilizar variables en la sentencia SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY); donde va la fecha y los dias del intervalo. estos datos estan en una columna de la tabla y la ingresa el usuario.

Salvador Pozo
2012-06-08 11:46:11

Hola:

Tanto la fecha como el número del intervalo pueden ser constantes, columnas de una tabla o variables MySQL.

Por ejemplo, si una tabla tiene una columna fecha de tipo DATE y una columna entera n, que defina un intervalo de fechas, podemos hacer una consulta para las filas en las que una fecha concreta esté en ese intervalo:

SELECT * FROM tabla 
   WHERE fecha <= "2012-05-01" AND
   ADDDATE(fecha, INTERVAL n DAY) >= "2012-05-01";

También podemos usar variables MySQL:

SET @x = CURRENT_DATE();
SELECT * WHERE fecha = ADDDATE(@x, INTERVAL 1 DAY);

En cuando a datos introducidos por el usuario, generalmente se usan otros lenguajes, como PHP o C, mediante un API, para acceder a MySQL. En esos casos, esos datos se tratan como constantes, dado que las consultas se generan como cadenas formateadas.

Hasta pronto.