Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

वर्ष (तारीख) फ़ंक्शन कितना कुशल है?

एक वर्ष से मेल खाने वाली पंक्तियों के लिए "तालिका खोजें" के लिए गणना किए गए कॉलम की कोई आवश्यकता नहीं है। इसके बजाय एक अंतराल का उपयोग करते हुए आपको वह जगह लिखें जहां आपके दिनांक कॉलम पर एक अनुक्रमणिका है।

select SomeColumn
from YourTable
where ActivityDate >= '20110101' and
      ActivityDate < '20120101'

यदि आप दो स्ट्रिंग्स के बजाय क्वेरी के तर्क के रूप में एक इंट (वर्ष) का उपयोग करना चाहते हैं तो आप dateadd का उपयोग कर सकते हैं . बस यह सुनिश्चित कर लें कि आप एक्टिविटीडेट कॉलम में कोई फ़ंक्शन/मैनिपुलेशन लागू नहीं करते हैं क्योंकि यदि आप ऐसा करते हैं तो SQL सर्वर इंडेक्स का उपयोग नहीं कर पाएगा।

declare @Year int = 2011

select SomeColumn
from YourTable
where ActivityDate >= dateadd(year, @Year-1900, 0) and
      ActivityDate < dateadd(year, @Year-1899, 0)      


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर टेबल और पिवट में शामिल होता है

  2. SQL सर्वर में रोलबैक या लेन-देन कैसे करें

  3. मैं उन सभी तालिकाओं को कैसे ढूंढूं जिनमें विदेशी कुंजी हैं जो विशेष तालिका का संदर्भ देती हैं। कॉलम और उन विदेशी चाबियों के लिए मूल्य हैं?

  4. SQL सर्वर 2017 पर CLR सख्त सुरक्षा

  5. nvarchar(अधिकतम) बनाम NText