DATE_ADD
funktioniert gut mit verschiedenen Monaten. Das Problem ist, dass Sie 2001-01-01
sechs Monate hinzufügen und der 1. Juli soll da sein.
Das möchten Sie tun:
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)
ODER
SELECT *
FROM mydb
WHERE creationdate >= "2011-01-01"
AND creationdate < DATE_ADD("2011-01-01", INTERVAL 6 MONTH)
GROUP BY MONTH(creationdate)
Weitere Informationen finden Sie unter DATE_ADD Dokumentation .
*Bearbeitet, um die Syntax zu korrigieren