sql >> Base de Datos >  >> RDS >> Mysql

MySQL - Intervalo de DATE_ADD mes

DATE_ADD funciona bien con diferentes meses. El problema es que está agregando seis meses a 2001-01-01 y el 1 de julio se supone que es allí.

Esto es lo que quieres hacer:

SELECT * 
FROM mydb 
WHERE creationdate BETWEEN "2011-01-01" 
                   AND DATE_ADD("2011-01-01", INTERVAL 6 MONTH) - INTERVAL 1 DAY
GROUP BY MONTH(creationdate)

O

SELECT * 
FROM mydb 
WHERE creationdate >= "2011-01-01" 
AND creationdate < DATE_ADD("2011-01-01", INTERVAL 6 MONTH)
GROUP BY MONTH(creationdate)

Para obtener más información, consulte documentación DATE_ADD .

* editado para corregir la sintaxis