DATE_ADD
werkt prima met verschillende maanden. Het probleem is dat je zes maanden toevoegt aan 2001-01-01
en 1 juli zou er moeten zijn.
Dit is wat je wilt doen:
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)
OF
SELECT *
FROM mydb
WHERE creationdate >= "2011-01-01"
AND creationdate < DATE_ADD("2011-01-01", INTERVAL 6 MONTH)
GROUP BY MONTH(creationdate)
Kijk voor meer informatie op DATE_ADD documentatie .
*bewerkt om de syntaxis te corrigeren