DATE_ADD
fungerer fint med forskellige måneder. Problemet er, at du tilføjer seks måneder til 2001-01-01
og 1. juli formodes at være der.
Dette er, hvad du vil gøre:
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)
ELLER
SELECT *
FROM mydb
WHERE creationdate >= "2011-01-01"
AND creationdate < DATE_ADD("2011-01-01", INTERVAL 6 MONTH)
GROUP BY MONTH(creationdate)
For yderligere læring, tag et kig på DATE_ADD dokumentation .
*redigeret til korrekt syntaks