2009-09-25 11 views

उत्तर

29
SELECT * FROM table WHERE dateField > DATE_SUB(NOW(), INTERVAL 1 MONTH) 

यह सभी पंक्तियों है कि वर्तमान टाइमस्टैम्प शून्य से एक महीने (की तुलना में एक dateField अधिक हाल का चयन करता है तो, उदाहरण के लिए, आज दिए गए 26 सितं, 2009 00:56 यह पंक्तियों को 26 से भी अधिक हाल ही में अगस्त 2009 कर रहे हैं देना होगा है 0:56)

5

दरअसल, अब तक पिछले महीने होगा:

महीने की शुरुआत से:

SELECT * FROM table 
WHERE date >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-01') 
AND date <= NOW() 

के बाद से एक महीने पहले:

SELECT * FROM table 
WHERE date >= (CURRENT_DATE - INTERVAL 1 MONTH) 

वैकल्पिक रूप से (उम्मीद है कि आपको मेज पर कोई भविष्य नहीं दिनांकों हैं) तो आप केवल पिछले महीने चाहते हो सकता है ... कहो आज सितंबर है और आप सभी अगस्त, किसी भी शामिल नहीं चाहते सितंबर का ... मैं यही 'पिछले महीने' के रूप में समझता हूं।

SELECT * FROM table 
WHERE date >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y/%m/01') 
AND date < DATE_FORMAT(CURRENT_DATE, '%Y/%m/01') 

तुम भी एक ही परिणाम के लिए कर सकता है:

SELECT * FROM table 
WHERE YEAR(date) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) 
AND MONTH(date) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH) 
संबंधित मुद्दे