2011-09-21 10 views
7

SQL कथन का उपयोग कर पिछले 3 महीनों के डेटा कैसे प्राप्त करूं? उदाहरण के लिए यदि वर्तमान दिनांक 01/01/2012 है, तो दिसंबर, नवंबर, अक्टूबर 2011 के लिए डेटा कैसे प्राप्त करें?वर्तमान दिनांक के आधार पर पिछले 3 महीने के डेटा प्राप्त करें - MySQL

कृपया कोई मुझे मार्गदर्शन करें।

उत्तर

13
SELECT * FROM table1 
WHERE mydate BETWEEN DATE_SUB(now(), INTERVAL 3 MONTH) AND now() 

या आप, महीने

SELECT * FROM table1 
WHERE MONTH(mydate) BETWEEN MONTH(DATE_SUB(now(), INTERVAL 3 MONTH)) AND MONTH(now()) 
    AND YEAR(mydate) BETWEEN YEAR(DATE_SUB(now(), INTERVAL 3 MONTH)) AND YEAR(now()) 

यह बाद संस्करण बहुत धीमी चलेंगे भीतर रहने के लिए, क्योंकि यह तथापि mydate के लिए एक सूचकांक का उपयोग नहीं कर सकते हैं चाहते हैं।

+0

वर्तमान दिनांक = 01/01/2012 यदि आपके समाधान ठीक काम करते हैं तो ठीक है। लेकिन जब मैं वर्तमान दिनांक 21/09/2011 में बदलता हूं, तो मुझे शून्य परिणाम मिला। – softboxkid

+0

दिनांक yyyy-mm-dd प्रारूप में होना चाहिए, अपनी तिथि के रूप में '2011-09-21' का उपयोग करें। – Johan

+0

ठीक है अब मैंने पहला समाधान इस्तेमाल किया था। लेकिन वह समाधान हमेशा 3 की बजाय 2 पंक्तियों को वापस क्यों करता है? मैंने पहले ही तारीख को yyyy-mm-dd – softboxkid

संबंधित मुद्दे