ऐसा लगता है कि आप ऐसा करने की कोशिश कर रहे उपयोग करने के लिए है:
सभी की
WHERE specific_date < (NOW() + 5 days)
पहले, सीमा मामलों के बारे में अच्छी तरह सोच। ये सीमा मामले एसक्यूएल में आपके एंगल्स काट सकते हैं। आप वास्तव में
WHERE specific_date <= (NOW() + 5 days)
अपने specific_date
कॉलम timestamps केवल दिन (कि आधी रात के बराबर समय के साथ तारीखों है) होते हैं या वे दिनांक और समय होते हैं क्या करना चाहते हैं? यदि आप अपने इच्छित परिणाम प्राप्त करने जा रहे हैं, तो आपको उन विवरणों के बारे में सावधान रहना होगा।
किसी भी हाल में इस प्रयास करें:
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
और बहुत कुछ कर सकते हैं।
स्रोत
2011-10-10 12:37:58
हाँ धन्यवाद, यह काम किया। – sathish
क्या यह घंटों के साथ भी काम करता है? उदाहरण के लिए: जहां विशिष्ट_डेट <= DATE_ADD (अब(), अंतराल 24 घंटा) ' –
हां, मेरा संपादन देखें। –