これで先月が表示されます:
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
これは、現在の日付からその月の日を抽出し、その日から1日を引いた日を引くだけです。