वेब, डेटाबेस, क्लाउड सेवाओं और बीस्पोक बिजनेस मैनेजमेंट सॉफ्टवेयर में विशेषज्ञता के साथ 20 से अधिक वर्षों के अनुभव के साथ एक बहु-राष्ट्रीय टीम
  • व्यापारिक समाधान
    • सॉफ़्टवेयर
    • रोबोटिक प्रक्रिया स्वचालन
    • डेटाबेस परामर्श सेवाएं
      • डेटा एकीकरण
      • डाटावेयरहाउस सेवाएं
      • पावर बीआई
      • सर्वर अपग्रेड और डीबीए सेवाएं
    • वेब साइट डिजाइन
      • भुगतान द्वार
      • लोगो डिजाइन
      • वेब स्थानीयकरण और अनुवाद
      • वेब साइट अनुकूलन
      • वेबसाइट सुरक्षा
      • तकनीकी उपकरण
    • क्लाउड समाधान
      • अमेज़न वेब सेवाएँ
      • Google क्लाउड सेवाएं
      • माइक्रोसॉफ्ट ऐज़ुर
    • माइक्रोसॉफ्ट ऑफिस
    • सामाजिक मीडिया
  • अकादमी
    • हमारा परीक्षण वातावरण
    • डेटाबेस डिजाइन सीखना
      • मूल बातें
      • SQL सर्वर Pivot-Unpivot का उपयोग करना
      • SQL सर्वर डेटा
      • SQL सर्वर फ़ंक्शंस का उपयोग करना
      • एसक्यूएल सर्वर 2008 रखरखाव योजनाएँ
      • एसक्यूएल सर्वर तिथियों का उपयोग करना
      • ओपन क्वेरी प्राप्त करें
    • वेबसाइट डिजाइन सीखना
      • Ousia सामग्री प्रबंधन प्रणाली का निर्माण
      • ASP-NET
      • CSS
      • जावास्क्रिप्ट का उपयोग करना
    • क्लाउड और आईटी सेवाएं सीखना
      • टास्क शेड्यूलर त्रुटि 2147943645
      • एसएसएल का अनुरोध करना और ओपनएसएसएल सरल चरणों में पीएफएक्स फ़ाइल बनाना
    • सामाजिक मीडिया का उपयोग
      • Google समीक्षा के लिए पूछना
      • फेसबुक अकाउंट को पर्सनल से बिजनेस में बदलना
      • सोशल मीडिया छवि आकार
      • सोशल मीडिया छवियाँ सेट करने के लिए मेटा डेटा का उपयोग करना
      • सोशल मीडिया प्रयासों पर ध्यान केंद्रित करने का स्थान चुनना
  • हमारे बारे में
    • ब्लॉग
      • Google कोर अपडेट जनवरी 2020
      • अपनी वेबसाइट के लिए सामग्री का चुनाव कैसे करें विज्ञापन पत्रक
      • इंटरनेट पर वेबसाइटों के बारे में सबसे कष्टप्रद बातें
      • एक प्रवेश स्तर की गेमिंग मशीन का निर्माण
      • ऑनलाइन घोटाले को रोकना
      • गिग इकॉनमी के स्किमर्स
      • मुफ्त वेक्टर ग्राफिक्स के लिए शीर्ष 5 वेबसाइटें
      • गर्म मिर्च इंटरनेट बंद
    • करियर
      • अनुवादक अंग्रेज़ी-जापानी
      • अनुवादक अंग्रेज़ी-तुर्की
      • अनुवादक अंग्रेज़ी-पुर्तगाली
      • अनुवादक अंग्रेज़ी-स्पेनिश
    • टीम
      • अली अल अमीन
      • ऐसे हुरो
      • एड्रियन आनंदन
      • गेविन क्लेटन
      • चेस्टर कॉपरपॉट
      • सुनील कुमार
      • सूर्य मुक्कमल
      • साई गंगू
    • नियामक
    • पोर्टफोलियो
English (EN-GB)English (EN-US)Español (ES)हिंदी (HI)italiano (IT)日本語 (JA)

एसक्यूएल जहां दिनांक अंतराल के साथ खंड - कौन सा तरीका सबसे अच्छा है?

SQL सर्वर WHERE क्लॉज़ के भीतर तारीखों को संभालने के तरीके की जाँच करना, और उनका सर्वोत्तम उपयोग कैसे करना है

संदर्भ

SQL सर्वर डेटा का उपयोग करना

डेटा प्रोटेक्शन एक्ट के कारण, कुछ डेटा को सिस्टम से निर्धारित समय पर हटा दिया जाना चाहिए, ज्यादातर मामलों में यह सात साल का होता है।

जब एक क्लाइंट साइट पर इसकी जांच की गई, तो हमें भेजे गए प्रश्न की जांच करने पर उन्हें अजीब परिणाम मिल रहे थे।

SQL

SELECT *FROM AccountsWHERE DATEDIFF(YEAR,ClosedDate,GETDATE())>=7

एक परीक्षण तालिका बनाएं

अब यह सही मात्रा की तरह दिखता है, हालांकि आगे के निरीक्षण पर सात साल पहले की स्थिर तारीख की तुलना में अधिक खाते थे, तो उसने ऐसा क्यों किया?

मैंने इसकी जांच के लिए निम्नलिखित कोड बनाया है।

SQL

DECLARE @Records TABLE (RecordID INT,RecordClosed DATETIME)DECLARE @InsRecID INT = 1DECLARE @InsRecDate DATE=DATEADD(YEAR,-8,GETDATE())WHILE @InsRecDate      INSERT INTO @Records      SELECT @InsRecID,@InsRecDate      SET @InsRecID = @InsRecID+1      SET @InsRecDate=DATEADD(DAY,1,@InsRecDate)ENDDECLARE @DateFrom DATE=DATEADD(YEAR,-7,GETDATE())SELECT MAX(RecordClosed) FROM @RecordsSELECT MAX(RecordClosed) FROM @Records WHERE DATEDIFF(YEAR,RecordClosed,getdate())>=7SELECT MAX(RecordClosed) FROM @Records WHERE RecordClosed<@DateFromSELECT MAX(RecordClosed) FROM @Records WHERE RecordClosed<=@DateFromSELECT MAX(RecordClosed) FROM @Records WHERE DATEDIFF(DAY,RecordClosed,getdate())/365.25>7

परिक्षण

21/03/2013 को चलने पर यह निम्नलिखित परिणाम लाएगा:

Results

2007-03-21 00:00:00.000

2006-12-31 00:00:00.000

2006-03-20 00:00:00.000

2006-03-21 00:00:00.000

2006-03-21 00:00:00.000

क्या सही है?

पहला रिकॉर्ड अस्थायी तालिका में सबसे बड़ी तारीख है, इसलिए यह ठीक है।

दूसरे रिकॉर्ड ने 2006 के अंत तक सभी खातों को उठा लिया है, यह एक संभावित मुद्दा हो सकता था क्योंकि बहुत अधिक डेटा हटा दिया गया होता। वर्ष पर DATEDIFF विशुद्ध रूप से वर्ष 7 साल पहले की जाँच कर रहा है।

तीसरा और चौथा रिकॉर्ड वह है जो हम चाहते हैं, इस पर निर्भर करता है कि आप सात साल पहले के दिन को अंदर या बाहर के रूप में शामिल करना चाहते हैं।

पांचवां रिकॉर्ड, हालांकि रन करते समय सही है, लीप वर्ष की गणना का उपयोग कर रहा है, और यदि आपको विशिष्ट होना है तो सटीकता के लिए भरोसा नहीं किया जा सकता है।

Speed difference

While checking the records, I ran it on the system checking 2,500,000 records for 3 and 5 above.

Statement 5 returned our result in 6 seconds, Statement 3 in only 3 seconds, so not only were we now sure that we were accurate, but we were also processing the records quicker.

Try to use a proper date when querying dates, hope this helps someone scratching their head.

Author

Was this helpful?

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink हमसे-संपर्क-करेंकूकी नीतिसाइटमैप

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
इस साइट की सेटिंग्स सभी कुकीज़ को अनुमति देने के लिए सेट हैं इन्हें हमारी कुकी नीति और सेटिंग पृष्ठ पर बदला जा सकता है। इस साइट का उपयोग जारी रखने के द्वारा आप कुकीज़ के उपयोग से सहमत हैं।
Ousia Logo
Logout
Ousia CMS Loader