मेरे पास कॉलम है जिसकी समाप्ति तिथि है और मैं समाप्ति तिथि खींचना चाहता हूं जो 3 महीने के भीतर आ रही है।
WHERE DATEDIFF(month, t5.warrantyexpirydate, GETDATE()) <= 3
या
WHERE t5.warrantyexpirydate >= DATEADD(month, 2, GETDATE())
ये दोनों जहां स्टेटमेंट 3 महीने से अधिक के किसी भी आइटम को खींचते हैं। क्या कोई मुझे इस बारे में सहायता कर सकता है?
शुक्रिया!
1 उत्तर
>=
और <=
तर्क का प्रयोग करें, क्योंकि जब आप अपने कॉलम में फ़ंक्शन लागू नहीं करते हैं तो यह SARGable होता है:
WHERE warrantyexpirydate >= DATEADD(MONTH, -3, GETDATE())
AND warrantyexpirydate <= GETDATE() --This isn't needed if the expiry can't be in the future
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।