2012-11-02 12 views
6

मैं एक तालिका से डेटा पुनर्प्राप्त कर रहा हूं और प्रविष्टियों का कुल एसयूएम दिखा रहा हूं। मैं जो करना चाहता हूं वह आज की तारीख, कल और इस महीने की गई प्रविष्टियों के कुल एसयूएम को दिखाने के लिए है। तालिका यूनिक्स टाइमस्टैम्प प्रारूप का उपयोग कर रही है (उदाहरण के लिए 1351771856)।mysql दिनांक परिणाम आज/कल/सप्ताह

वर्तमान में मैं आज परिणाम दिखाने के लिए इस लाइन का उपयोग कर रहा:

AND comment_date > UNIX_TIMESTAMP() - 24 * 3600"; 

लेकिन है कि मुझे पिछले 24 घंटों के लिए बस प्रविष्टियों देता है।

उदाहरण: तो चलो कहते हैं कि इसकी शुक्रवार, 17:00 PM करते हैं - यह मेरे शुक्रवार 17:00 PM

करने से गुरुवार: 17:00 PM गिनती देता है मैं क्या चाहता हूँ परिणाम पाने के लिए है

  • के लिए गुरुवार 00:00:00 - 23:59:59 (इस मामले में कल)
  • आज (00:00:00 - 23:59:59) के लिए परिणाम
  • और पिछले सप्ताह, परिणाम जो ओ शुरू करते हैं सोमवार, 00:00:00 "आज" (इस मामले में शुक्रवार) तक।

मुझे यह प्राप्त करने के लिए MySQL दस्तावेज़ में कोई रास्ता नहीं मिला।

+0

'असली' मानों से आपका क्या मतलब है? –

+0

उदाहरण के लिए: comment_date = $ आज या comment_date = $ कल, comment_date = $ this_month –

+0

कोई "आज" या "कल" ​​चर नहीं है, आपको टाइमस्टैम्प या अन्य दिनांक प्रकारों का उपयोग करके एक निश्चित अवधि चुननी है (या MySQL दिनांक अंतर आप डेटाटाइम का उपयोग करते हैं)। आपके दृष्टिकोण का अनुमान लगाने का एकमात्र तरीका आपका दृष्टिकोण है। – Serg

उत्तर

6

यह mysql कोड आप के लिए काम करना चाहिए:

// Today 
AND DATE(from_unixtime(comment_date)) = CURRENT_DATE 

// Yesterday 
AND DATE(from_unixtime(comment_date)) = DATE_SUB(CURRENT_DATE,INTERVAL 1 DAY) 

// This week 
AND YEARWEEK(from_unixtime(comment_date), 1) = YEARWEEK(CURRENT_DATE, 1) 

// This month 
AND YEAR(from_unixtime(comment_date)) = YEAR(CURRENT_DATE) 
AND MONTH(from_unixtime(comment_date)) = MONTH(CURRENT_DATE) 
+0

यह पूरी तरह से काम कर रहा है! –

+0

सोमवार –

+0

@ जोचिम इस्कसन से शुरू करके "इस सप्ताह" की गणना की गई एकमात्र चीज की गणना की गई है, मैंने कोशिश की, लेकिन '@now' का उपयोग करने के किसी कारण से मुझे "500 आंतरिक सर्वर त्रुटि" –

0

बस इस का उपयोग करें:

AND comment_date > date_sub(current_date, interval 1 day) 
0

देखें मेरा उत्तर यहाँ, मुझे लगता है कि यह काफी संबंधित है।

Pull records from orders table for the current week

MySQL's GROUP BY साथ अंतरंग हो रही पर विचार करें। यदि आप MySQL का उपयोग करते हैं तो आपको शायद यह जानने की आवश्यकता होगी।

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