ऐसा लगता है कि आप ऐसा करने का प्रयास कर रहे हैं:
WHERE specific_date < (NOW() + 5 days)
सबसे पहले, सीमा मामलों के बारे में ध्यान से सोचें। ये सीमा मामले SQL में आपकी टखनों को काट सकते हैं। क्या आप वाकई चाहते हैं
WHERE specific_date <= (NOW() + 5 days)
अपना specific_date
करें कॉलम टाइमस्टैम्प में केवल दिन होते हैं (अर्थात मध्यरात्रि के बराबर समय वाली तिथियां) या क्या उनमें तिथियां और समय होते हैं? यदि आप अपने इच्छित परिणाम प्राप्त करने जा रहे हैं, तो आपको उन विवरणों के बारे में सावधान रहने की आवश्यकता है।
किसी भी मामले में, यह प्रयास करें:
WHERE specific_date <= DATE_ADD(NOW(), INTERVAL 5 DAY)
ऐसा लुकअप करने का यह एक अच्छा तरीका है। असमानता विधेय के एक तरफ स्तंभ मान अकेला खड़ा है (<=
) इसलिए यदि आपके पास कॉलम पर एक इंडेक्स है तो mySQL एक इंडेक्स रेंज स्कैन कर सकता है।
MySQL में दिनांक अंकगणित काफी लचीला है। आप कर सकते हैं
NOW() + INTERVAL 10 SECOND
NOW() - INTERVAL 2 MINUTE
NOW() + INTERVAL 4 HOUR
CURDATE() - INTERVAL 1 WEEK /* midnight one week ago */
LAST_DAY(NOW()) + INTERVAL 1 DAY - INTERVAL 1 MONTH /*first day of present month*/
NOW() - INTERVAL 1 QUARTER
CURDATE() - INTERVAL 5 YEAR
और आगे।