Ini akan memberi Anda bulan terakhir:
WHERE dateColumn BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW();
Ini dari awal bulan:
WHERE dateColumn BETWEEN STR_TO_DATE('2012-09-01', '%Y-%m-%d') AND NOW();
ANTARA tidak ada yang istimewa, itu hanya jalan pintas untuk
dateColumn <= ... AND dateColumn >= ....
Hmm, saya kira perbandingan SEKARANG() sebenarnya tidak diperlukan, karena semua catatan akan ada sebelum sekarang.
Jadi lakukan saja:
WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')
Awal dinamis bulan ini:
WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY
Yang dilakukan hanyalah mengekstrak hari dalam sebulan dari tanggal saat ini, lalu kurangi hari itu dengan kurang satu.