2012-06-19 12 views
6

मुझे कुछ उदाहरण ऑनलाइन मिले लेकिन मुझे समझ में नहीं आता कि यह कैसे काम करता है। उदाहरण के लिएपिछली रविवार की तारीख एल्गोरिदम

 SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) 

मुझे यह भी यकीन नहीं है कि यह वही है जो मैं चाहता हूं।

मुझे क्या चाहिए, जब क्वेरी निष्पादित की जाती है, तो यह SELECT * from xTable WHERE xDate दो तिथियों के बीच हो सकती है। अंतिम रविवार और अगले रविवार (वर्तमान सप्ताह)। मैं इसे स्वचालित रूप से खोजने के लिए क्या उपयोग कर सकता हूं? और कृपया समझाएं क्योंकि मैं SQL में नया हूं।

+4

मुझे समझ में नहीं आता कि कोई "वास्तविक प्रश्न नहीं" _ के रूप में बंद करने के लिए क्यों मतदान कर सकता है। यह स्पष्ट है कि ओपी क्या जानना चाहता है: वर्तमान सप्ताह के रिकॉर्ड कैसे प्राप्त करें। लेकिन सवाल यह है कि, क्या आपने क्वेरी की कोशिश की है और यह गलत परिणाम लौटा है? –

+0

यह वास्तव में एक तारीख देता है जो मुझे नहीं लगता कि मेरे परिणाम प्राप्त करने के लिए इस क्वेरी का उपयोग कैसे किया जाए। – phadaphunk

उत्तर

4

मैं इस क्वेरी

SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) 

समझने की कोशिश कर में गहरी देखा और यह प्रयोग किया जाता पिछले सोमवार को नहीं निकाला जा। अब मैं पूरे सप्ताह प्राप्त करने के लिए बस DATEADD 6 और दिन कर सकता हूं।

समाधान मैं प्रयोग किया है:

 Set @Monday = DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) 
     Set @Sunday = DATEADD(dd, 06, @Monday) 

समस्या को हल किया।

+0

यदि आपके पास अपनी तालिका में भविष्य की तिथियां नहीं हैं, तो यह सबसे प्रभावी तरीका है: xTable से चुनें * जहां xDate> = DATEADD (ww, DATEDIFF (ww, 0, GETDATE()), 0) '। यदि आप भविष्य की तारीखों (एक सप्ताह से अधिक) को प्रतिबंधित करना चाहते हैं: 'चयन * xTable से जहां xDate> = DATEADD (ww, DATEDIFF (ww, 0, GETDATE()), 0) और xDate

+0

इसकी रिपोर्ट के लिए वास्तव में उल्लेख करना भूल गया। तो अगर कोई दो महीने पहले एक रिपोर्ट दोबारा मुद्रित करना चाहता है तो कुछ भविष्य की तारीखें डर जाएंगी। लेकिन मैंने कोशिश की और यह पूरी तरह से काम करता है अगर यह भविष्य की तारीखों की समस्या के लिए नहीं है। धन्यवाद:) – phadaphunk

संबंधित मुद्दे