Dit geeft je de laatste maand:
WHERE dateColumn BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW();
Dit vanaf het begin van de maand:
WHERE dateColumn BETWEEN STR_TO_DATE('2012-09-01', '%Y-%m-%d') AND NOW();
De TUSSEN is niets bijzonders, het is slechts een kortere weg voor
dateColumn <= ... AND dateColumn >= ....
Hmm, ik denk dat de NU()-vergelijking eigenlijk niet nodig is, aangezien alle records voor nu zullen zijn.
Dus doe gewoon:
WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')
Dynamische start van de huidige maand:
WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY
Het enige wat dit doet is de dag van de maand van de huidige datum aftrekken en er vervolgens dat aantal dagen minder één van aftrekken.