Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL - DATE_ADD intervallo di mesi

DATE_ADD funziona bene con diversi mesi. Il problema è che stai aggiungendo sei mesi a 2001-01-01 e il 1 luglio dovrebbe essere lì.

Questo è quello che vuoi fare:

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)

Per ulteriori informazioni, dai un'occhiata a DATE_ADD documentazione .

*modificato per correggere la sintassi