इससे आपको आखिरी महीना मिलेगा:
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 >= ....
हम्म, मुझे लगता है कि अब () तुलना की वास्तव में आवश्यकता नहीं है, क्योंकि सभी रिकॉर्ड अब से पहले होंगे।
तो बस करें:
WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')
चालू माह की गतिशील शुरुआत:
WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY
यह सब करता है महीने के दिन को वर्तमान तिथि से निकालता है, फिर उसमें से कई दिनों को घटा देता है।