SELECT * FROMcalendarWHERE 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 * FROMcalendarWHEREdateBETWEEN '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.