SELECT * FROM
calendarWHERE DATE_FORMAT(
date,'%Y-%m') = '2012-01'
Ja, das ist eine Lösung - aber ein Datum in einen String zu konvertieren und diesem dann für einen Vergleich heranziehen ist etwas hölzern.
SELECT * FROM
calendarWHERE
dateBETWEEN '2012-01-15' AND '2012-01-30'
Das mag in diesem Fall funktionieren, aber du willst dir doch nicht ernsthaft die nächsten 14 Tage manuell ausrechnen - inklusive Schalttagen?
gibt es einen bessere Lösung?
Ja.