ऐसा लगता है कि आप ऐसी पंक्तियाँ चाहते हैं जहाँ end_date
पांच दिन पहले के बाद का है।
इसे पाने का सबसे अच्छा तरीका है
WHERE end_date >= CURDATE() - INTERVAL 5 DAY
तिथियों में पूर्णांक जोड़ने का व्यवसाय MySQL में काम नहीं करता है (यह एक Oracle चीज़ है)। तो आपको INTERVAL n unit
. का उपयोग करने की आवश्यकता है वाक्य रचना।
आप देखेंगे कि ऊपर मेरा WHERE क्लॉज कार्यात्मक रूप से
. के बराबर है WHERE DATE(end_date) + INTERVAL 5 DAY >= DATE(NOW())
लेकिन, पहला सूत्रीकरण दो कारणों से दूसरे से बेहतर है।
- यदि आप
end_date
का उल्लेख करते हैं WHERE क्लॉज में इसे कंप्यूटेशन में लपेटे बिना, आपकी क्वेरी उस कॉलम पर एक इंडेक्स का फायदा उठा सकती है और तेजी से चल सकती है। DATE(NOW())
औरCURDATE()
दोनों आज (मध्यरात्रि) के पहले क्षण का उल्लेख करते हैं। लेकिनCURDATE()
थोड़ा आसान है।