यदि आपको SQL सर्वर में किसी दिनांक से ISO सप्ताह संख्या निकालने की आवश्यकता है, तो आप iso_week
का उपयोग कर सकते हैं DATEPART()
. को कॉल करते समय तर्क समारोह। आप वैकल्पिक रूप से isowk
. का उपयोग कर सकते हैं या isoww
एक ही काम करने के लिए तर्क।
"ISO सप्ताह" के द्वारा, मैं ISO 8601 दिनांक और समय मानक की बात कर रहा हूँ।
आईएसओ सप्ताह सोमवार को शुरू होते हैं और एक वर्ष के पहले सप्ताह में उस वर्ष के 4 जनवरी होते हैं। इसलिए, संभव है कि जनवरी की शुरुआत की तारीखें पिछले साल के 52वें या 53वें सप्ताह का हिस्सा हों, और दिसंबर के अंत की तारीखें अगले साल के पहले सप्ताह का हिस्सा हों।
इसका मतलब यह है कि जब आप किसी तिथि से सप्ताह की संख्या निकालते हैं, तो आप ग्रेगोरियन कैलेंडर का उपयोग कर रहे हैं या आईएसओ 8601 दिनांक और समय मानक के आधार पर अलग-अलग परिणाम प्राप्त कर सकते हैं।
उदाहरण
DECLARE @date date = '2021-01-01';
SELECT DATEPART(iso_week, @date);
परिणाम:
53
इस मामले में, तारीख 1 जनवरी, 2021 है, लेकिन ISO के लिहाज़ से यह 2020 का 53वां हफ़्ता है।
ग्रेगोरियन से तुलना करें
ग्रेगोरियन सप्ताह से इसकी तुलना करने के लिए यहां एक और उदाहरण दिया गया है।
DECLARE @date date = '2021-01-01';
SELECT
DATEPART(week, @date) AS week,
DATEPART(iso_week, @date) AS iso_week;
परिणाम:
+--------+------------+ | week | iso_week | |--------+------------| | 1 | 53 | +--------+------------+
इसलिए हम देख सकते हैं कि हम ग्रेगोरियन कैलेंडर या आईएसओ मानक का उपयोग कर रहे हैं या नहीं, इस पर निर्भर करते हुए एक ही तारीख में एक अलग सप्ताह संख्या हो सकती है।
हम पिछले वर्ष के अंत के निकट किसी तिथि के साथ भी ऐसा ही कर सकते हैं।
DECLARE @date date = '2020-12-27';
SELECT
DATEPART(week, @date) AS week,
DATEPART(iso_week, @date) AS iso_week;
परिणाम:
+--------+------------+ | week | iso_week | |--------+------------| | 53 | 52 | +--------+------------+
वैकल्पिक तर्क
जैसा कि बताया गया है, वैकल्पिक रूप से isowk
. का उपयोग कर सकते हैं या isoww
आईएसओ सप्ताह संख्या वापस करने के लिए।
DECLARE @date date = '2021-01-01';
SELECT
DATEPART(iso_week, @date) AS iso_week,
DATEPART(isowk, @date) AS isowk,
DATEPART(isoww, @date) AS isoww;
परिणाम:
+------------+---------+---------+ | iso_week | isowk | isoww | |------------+---------+---------| | 53 | 53 | 53 | +------------+---------+---------+