आप उपयोग कर सकते हैं date_trunc('week', ...)
।
उदाहरण के लिए:
SELECT date_trunc('week', '2012-07-25 22:24:22'::timestamp);
-> 2012-07-23 00:00:00
फिर, यदि आप प्रारंभ समय में रुचि नहीं रखते हैं, तो आप इसे एक तिथि में बदल सकते हैं।
अंतिम तिथि भी प्राप्त करने के लिए:
SELECT date_trunc('week', '2012-07-25 22:24:22'::timestamp)::date
|| ' '
|| (date_trunc('week', '2012-07-25 22:24:22'::timestamp)+ '6 days'::interval)::date;
-> 2012-07-23 2012-07-29
(मैंने यहां डिफ़ॉल्ट स्वरूपण का उपयोग किया है, आप निश्चित रूप से इसे MM/DD/YYYY का उपयोग करने के लिए अनुकूलित कर सकते हैं।)
ध्यान दें, यदि आप (date_trunc('week', ...) + '6 days'::interval
का उपयोग करने के बजाय टाइमस्टैम्प पर तुलना करना चाहते हैं, तो ध्यान दें। , हो सकता है कि आप एक पूरा सप्ताह जोड़ना चाहें और सप्ताह के अंत के लिए सख्त तुलना का उपयोग करना चाहें।
यह y
. को बाहर कर देगा सप्ताह के अंतिम दिन टाइमस्टैम्प (चूंकि कट-ऑफ समय उस दिन मध्यरात्रि है)।
date_trunc('week', x)::date <= y::timestamp
AND y::timestamp <= (date_trunc('week', x) + '6 days'::interval)::date
इसमें वे शामिल होंगे:
date_trunc('week', x)::date <= y::timestamp
AND y::timestamp < (date_trunc('week', x) + '1 week'::interval)
(ऐसा बहुत कम मामलों में होता है जब आप date_trunc
. का उपयोग नहीं कर सकते हैं y
. पर सीधे।)
यदि आपका सप्ताह रविवार को शुरू होता है, तो date_trunc('week', x)::date
के स्थान पर date_trunc('week', x + '1 day'::interval)::date - '1 day'::interval
के साथ काम करना चाहिए।