MySQL

2012-01-20 6 views
25

का उपयोग कर समाचार तालिका से पिछले 6 महीनों का चयन कैसे करें I तालिका में प्रविष्टियों के पिछले 6 महीनों का चयन करने का प्रयास कर रहा हूं, मेरे पास डेटाटाइम नामक कॉलम है और यह डेटाटाइम mysql प्रारूप में है।MySQL

मैंने अंतराल और अन्य तरीकों का उपयोग करके कई तरीकों को देखा है - मुझे किस विधि का उपयोग करना चाहिए? धन्यवाद

+3

यदि क्षेत्र वास्तव में आप datetime कहा जाता है -:

बस मैं अपने समाधान साझा करने के लिए करता है, तो किसी भी एक रुचि चाहते इसे घेरने के लिए 'उपयोग करने की आवश्यकता होगी। डेटाटाइम एक आरक्षित शब्द है। पाब्लो की प्रतिक्रिया xcept पर काम करेगी जहां उसके पास 'your_dt_field' है, आपको उचित बचने के साथ 'डेटाटाइम' डालने की आवश्यकता हो सकती है। – xQbert

उत्तर

79

उपयोग DATE_SUB

.... where yourdate_column > DATE_SUB(now(), INTERVAL 6 MONTH) 
+0

DATE_SUB() फ़ंक्शन दिए गए दिनांक से अंतराल को घटाता है। इस मामले में "अब() - 6 महीने"। – prageeth

+0

'DATE_SUB()' फ़ंक्शन के अंदर, क्या मैं 'अब()' के बजाय 'MAX ()' का उपयोग भी कर सकता हूं ??? क्योंकि मुझे एक समान स्थिति का सामना करना पड़ रहा है और मुझे आज की तारीख के बजाय दिनांक कॉलम में मौजूद अंतिम तिथि से पिछले 6 महीनों के आंकड़ों की जांच करनी है। – LearneR

11

इस प्रयास करें:

select * 
    from table 
where your_dt_field >= date_sub(now(), interval 6 month); 

क्वेरी पढ़ता है: मुझे table में सभी प्रविष्टियों दे जहां क्षेत्र प्रविष्टि की तारीख करने के लिए इसी 6 महीने से अधिक नया।

+0

your_dt_field यह प्रारूप क्या होगा? सिस्टम सिस्टम वर्तमान तिथि का उपयोग कैसे कर सकते हैं –

1

मैंने कोशिश की @ user319198 जवाब पिछले 6 महीनों (का योग) की बिक्री प्रदर्शित करने के लिए, यह काम किया, लेकिन मैं सबसे पुराने महीने में एक मुद्दा का सामना करना पड़ा, मैं की बिक्री राशि नहीं मिलता है पूरे महीने। परिणाम उस महीने के बराबर वर्तमान दिन से शुरू होता है।

yourdate_column > DATE_SUB(now(), INTERVAL 7 MONTH) 
limit 6 

इसके अलावा यह बहुत अच्छा होगा अगर कोई मेरे मामले के लिए बेहतर समाधान है जे