Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - intervalo de meses DATE_ADD


DATE_ADD funciona muito bem com meses diferentes. O problema é que você está adicionando seis meses a 2001-01-01 e 1º de julho deveria estar lá.

Isto é o que você quer fazer:
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)

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

Para aprender mais, dê uma olhada em documentação DATE_ADD .

*editado para corrigir a sintaxe