आप दोनों का उपयोग कर सकते हैं वर्ष (टाइमस्टैम्प)
और WEEK(timestamp )
, और इन दोनों अभिव्यक्तियों का उपयोग SELECT
. में करें और ग्रुप बाय
खंड।
अत्यधिक सुरुचिपूर्ण नहीं, लेकिन कार्यात्मक...
और निश्चित रूप से आप इन दो तारीख भागों को एक ही अभिव्यक्ति में भी जोड़ सकते हैं, यानी कुछ ऐसा
SELECT CONCAT(YEAR(timestamp), '/', WEEK(timestamp)), etc...
FROM ...
WHERE ..
GROUP BY CONCAT(YEAR(timestamp), '/', WEEK(timestamp))
संपादित करें :मार्टिन के रूप में बताया जाता है आप <कोड का भी उपयोग कर सकते हैं>YEARWEEK(mysqldatefield) फ़ंक्शन, हालांकि इसका आउटपुट ऊपर के लंबे फॉर्मूले की तरह आंखों के अनुकूल नहीं है।
2 संपादित करें [3 1/2 साल बाद!]:YEARWEEK(mysqldatefield)
वैकल्पिक दूसरे तर्क के साथ (मोड
) या तो 0 या 2 पर सेट करना संभवत:पूर्ण . द्वारा एकत्रित करने का सबसे अच्छा तरीका है सप्ताह (अर्थात 1 जनवरी से अधिक समय तक चलने वाले सप्ताहों सहित), यदि वह वांछित है। YEAR() / WEEK()
इस उत्तर में शुरू में प्रस्तावित दृष्टिकोण का ऐसे "स्ट्रैडलिंग" के लिए समेकित डेटा को विभाजित करने का प्रभाव है दो में सप्ताह:एक पूर्व वर्ष के साथ, एक नए वर्ष के साथ।
हर साल एक साफ-सुथरा कटौती, दो आंशिक सप्ताह तक होने की कीमत पर, दोनों में से एक, अक्सर लेखांकन आदि में वांछित होता है। और उसके लिए YEAR() / WEEK()
दृष्टिकोण बेहतर है।