आखरी रविवार (कौन सा "पिछले सप्ताह" का अंत है)
SELECT DATEADD(wk, DATEDIFF(wk, 6, CURRENT_TIMESTAMP), 6) AS LAST_SUNDAY
इस सप्ताह (मान लिया जाये कि सोम-रवि सप्ताह स्वरूप)
SELECT DATEADD(wk, DATEDIFF(wk, 7, CURRENT_TIMESTAMP), 7) AS START_OF_WEEK
SELECT DATEADD(wk, DATEDIFF(wk, 6, CURRENT_TIMESTAMP), 6 + 7) AS END_OF_WEEK
परिणाम
START_OF_WEEK
-----------------------
2011-05-02 00:00:00.000
END_OF_WEEK
-----------------------
2011-05-08 00:00:00.000
वूडू समझाने के लिए उदाहरण (उपयोग इस एसक्यूएल ऊपर अपने वांछित शुरू होने वाले सप्ताह के लिए समाप्त हुए सप्ताह के दिन के अनुसार सप्ताह बदल सकते हैं और करने के लिए)
- उदाहरण नीचे का पता लगाने सप्ताह के दिनों में वर्तमान सप्ताह (रविवार से शनिवार) के भीतर
- यदि वास्तविक END_OF_WEEK अगले सूर्य-शनि सप्ताह है, तो आपको इस सप्ताह के मूल्य में +7 की आवश्यकता है। (। ऊपर END_OF_WEEK उदाहरण देखें)
एसक्यूएल नीचे
SELECT DATEADD(wk, DATEDIFF(wk, -2, CURRENT_TIMESTAMP), -2) AS DAY_OF_WEEK /* Saturday */
SELECT DATEADD(wk, DATEDIFF(wk, -1, CURRENT_TIMESTAMP), -1) AS DAY_OF_WEEK /* Sunday */
SELECT DATEADD(wk, DATEDIFF(wk, 0, CURRENT_TIMESTAMP), 0) AS DAY_OF_WEEK /* Monday */
SELECT DATEADD(wk, DATEDIFF(wk, 1, CURRENT_TIMESTAMP), 1) AS DAY_OF_WEEK /* Tuesday */
SELECT DATEADD(wk, DATEDIFF(wk, 2, CURRENT_TIMESTAMP), 2) AS DAY_OF_WEEK /* Wednesday */
SELECT DATEADD(wk, DATEDIFF(wk, 3, CURRENT_TIMESTAMP), 3) AS DAY_OF_WEEK /* Thursday */
SELECT DATEADD(wk, DATEDIFF(wk, 4, CURRENT_TIMESTAMP), 4) AS DAY_OF_WEEK /* Friday */
SELECT DATEADD(wk, DATEDIFF(wk, 5, CURRENT_TIMESTAMP), 5) AS DAY_OF_WEEK /* Saturday */
SELECT DATEADD(wk, DATEDIFF(wk, 6, CURRENT_TIMESTAMP), 6) AS DAY_OF_WEEK /* Sunday */
SELECT DATEADD(wk, DATEDIFF(wk, 7, CURRENT_TIMESTAMP), 7) AS DAY_OF_WEEK /* Monday */
SELECT DATEADD(wk, DATEDIFF(wk, 8, CURRENT_TIMESTAMP), 8) AS DAY_OF_WEEK /* Tuesday */
SELECT DATEADD(wk, DATEDIFF(wk, 9, CURRENT_TIMESTAMP), 9) AS DAY_OF_WEEK /* Wednesday */
SELECT DATEADD(wk, DATEDIFF(wk, 10, CURRENT_TIMESTAMP), 10) AS DAY_OF_WEEK /* Thursday */
SELECT DATEADD(wk, DATEDIFF(wk, 11, CURRENT_TIMESTAMP), 11) AS DAY_OF_WEEK /* Friday */
SELECT DATEADD(wk, DATEDIFF(wk, 12, CURRENT_TIMESTAMP), 12) AS DAY_OF_WEEK /* Saturday */
etc...
वाह, मैंने सोचा था कि जब मैं किसी दिए गए दिनांक के बाद अगले शुक्रवार को खोजने के लिए पिछले सप्ताह उस मॉड्यूलस चाल के साथ आया था तो मैं इतना चालाक था। मैं तुम्हें सलाम करता हूँ, महोदय। वहां गैर-गणित geeks के लिए, एंड्री रविवार से शेष राशि का उपयोग कर दिनों की संख्या वापस कर रहा है। मैं एक बड़ा अंगूठे दे रहा हूँ! –