मेरे पास कॉलम है जिसकी समाप्ति तिथि है और मैं समाप्ति तिथि खींचना चाहता हूं जो 3 महीने के भीतर आ रही है।

WHERE DATEDIFF(month, t5.warrantyexpirydate, GETDATE()) <= 3

या

WHERE t5.warrantyexpirydate >= DATEADD(month, 2, GETDATE())

ये दोनों जहां स्टेटमेंट 3 महीने से अधिक के किसी भी आइटम को खींचते हैं। क्या कोई मुझे इस बारे में सहायता कर सकता है?

शुक्रिया!

0
D.RYU 25 नवम्बर 2020, 17:27

1 उत्तर

सबसे बढ़िया उत्तर

>= और <= तर्क का प्रयोग करें, क्योंकि जब आप अपने कॉलम में फ़ंक्शन लागू नहीं करते हैं तो यह SARGable होता है:

WHERE warrantyexpirydate >= DATEADD(MONTH, -3, GETDATE())
  AND warrantyexpirydate <= GETDATE() --This isn't needed if the expiry can't be in the future
3
Larnu 25 नवम्बर 2020, 17:28