समस्या:
आप PostgreSQL डेटाबेस में दिनांक या टाइमस्टैम्प मान की सप्ताह संख्या प्राप्त करना चाहते हैं।
उदाहरण:
हमारे डेटाबेस में children
कॉलम में डेटा के साथ id
, first_name
, last_name
, और birth_date
।
आईडी | <थ>पहला_नामlast_name | <थ>जन्म तिथि||
---|---|---|---|
1 | एंजेला | मिशेलिन | 2018-01-01 |
2 | मार्टिन | जैक्सन | 2002-07-26 |
3 | जस्टिन | क्लार्क | 2010-12-26 |
4 | फ्रैंक | बार्कर | 2008-06-08 |
प्रत्येक बच्चे के लिए, आइए उनका पहला नाम, अंतिम नाम और उनकी जन्मतिथि के सप्ताह की संख्या प्राप्त करें।
समाधान 1:
हम DATE_PART()
. का उपयोग करेंगे समारोह। यहां वह प्रश्न है जो आप लिखेंगे:
SELECT first_name, last_name, DATE_PART('week',birth_date) AS birth_week_number FROM children;
ये रहा क्वेरी का नतीजा:
last_name | <थ>जन्म_सप्ताह_संख्या||
---|---|---|
एंजेला | मिशेलिन | 1 |
मार्टिन | जैक्सन | 30 |
जस्टिन | क्लार्क | 51 |
फ्रैंक | बार्कर | 23 |
चर्चा:
DATE_PART()
का उपयोग करें PostgreSQL डेटाबेस में किसी दिनांक से सप्ताह संख्या पुनर्प्राप्त करने के लिए कार्य करता है। यह फ़ंक्शन दो तर्क लेता है। पहला तर्क पुनर्प्राप्त करने का दिनांक भाग है; हम 'सप्ताह' का उपयोग करते हैं, जो सप्ताह की संख्या देता है (उदाहरण के लिए जनवरी में पहले सप्ताह के लिए "1", वर्ष का पहला सप्ताह)। आप किसी अन्य दिनांक भाग का उपयोग कर सकते हैं, जैसे दिन, वर्ष, माह, घंटा, मिनट, doy (वर्ष में दिन की संख्या), आदि। आप PostgreSQL दस्तावेज़ीकरण में दिनांक भागों के बारे में अधिक जान सकते हैं।
दूसरा तर्क दिनांक/टाइमस्टैम्प/टाइमस्टैम्प्ट्ज़ डेटा प्रकार का कॉलम नाम या इन प्रकारों में से किसी एक को लौटाने वाला अभिव्यक्ति है। (हमारे उदाहरण में, यह तारीख . का कॉलम है डेटा प्रकार।)
जब 'सप्ताह' दिनांक भाग के साथ प्रयोग किया जाता है, तो फ़ंक्शन DATE_PART()
सप्ताह संख्या को पूर्णांक के रूप में लौटाता है। हमारे उदाहरण में, दिए गए बच्चे की जन्मतिथि के लिए सप्ताह की संख्या प्रदर्शित होती है; हमने इस कॉलम का नाम birth_week_number
. रखा है . मार्टिन जैक्सन का जन्म 2002-07-26
. को हुआ था , इसलिए फ़ंक्शन उसकी जन्मतिथि के सप्ताह संख्या के रूप में '30' लौटाता है।
DATE_PART()
सप्ताह संख्या प्राप्त करने का केवल एक ही तरीका नहीं है। एक अन्य विकल्प EXTRACT()
. का उपयोग करना है समारोह।
समाधान 2:
हम EXTRACT()
. का उपयोग करेंगे समारोह। यहां वह प्रश्न है जो आप लिखेंगे:
SELECT first_name, last_name, EXTRACT('week' FROM birth_date) AS birth_week_number FROM children;
यह फ़ंक्शन DATE_PART()
के समान है . अंतर वाक्य रचना में है:दिनांक भाग के नाम और स्तंभ/अभिव्यक्ति के बीच अल्पविराम के बजाय, FROM कीवर्ड है। साथ ही, EXTRACT()
समारोह एसक्यूएल मानक है। परिणाम दोनों कार्यों के लिए समान है।