DATE_ADD
अलग-अलग महीनों के साथ ठीक काम करता है। समस्या यह है कि आप 2001-01-01
. में छह महीने जोड़ रहे हैं और 1 जुलाई वहाँ माना जाता है।
आप यही करना चाहते हैं:
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)
या
SELECT *
FROM mydb
WHERE creationdate >= "2011-01-01"
AND creationdate < DATE_ADD("2011-01-01", INTERVAL 6 MONTH)
GROUP BY MONTH(creationdate)
अधिक जानकारी के लिए, DATE_ADD दस्तावेज़ ।
*सिंटैक्स को सही करने के लिए संपादित