Dette vil give dig den sidste måned:
WHERE dateColumn BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW();
Dette fra starten af måneden:
WHERE dateColumn BETWEEN STR_TO_DATE('2012-09-01', '%Y-%m-%d') AND NOW();
BETWEEN er ikke noget særligt, det er bare en genvej til
dateColumn <= ... AND dateColumn >= ....
Hmm, jeg gætter på, at NOW()-sammenligningen faktisk ikke er nødvendig, da alle posterne vil være før nu.
Så gør bare:
WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')
Dynamisk start på indeværende måned:
WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY
Alt dette gør er at udtrække dagen i måneden fra den aktuelle dato og derefter trække de mange dage mindre fra den.