Това ще ви даде последния месец:
WHERE dateColumn BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW();
Това от началото на месеца:
WHERE dateColumn BETWEEN STR_TO_DATE('2012-09-01', '%Y-%m-%d') AND NOW();
BETWEEN не е нищо особено, това е просто пряк път за
dateColumn <= ... AND dateColumn >= ....
Хм, предполагам, че сравнението NOW() всъщност не е необходимо, тъй като всички записи ще бъдат преди това.
Така че просто направете:
WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')
Динамично начало на текущия месец:
WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY
Всичко това прави е да извлече деня от месеца от текущата дата, след което да извади от него толкова дни по-малко от един.