क्या MySQL स्टेटमेंट में एक तरीका है रिकॉर्ड्स (एक डेट स्टैम्प के माध्यम से) द्वारा = = Now () -1 ताकि सारे रिकॉर्ड्स आज से पहले के भविष्य के लिए चुने जाएं?
क्या MySQL स्टेटमेंट में एक तरीका है रिकॉर्ड्स (एक डेट स्टैम्प के माध्यम से) द्वारा = = Now () -1 ताकि सारे रिकॉर्ड्स आज से पहले के भविष्य के लिए चुने जाएं?
जवाबों:
दिनांक / समय के कार्यों के लिए प्रलेखन को देखते हुए , आपको कुछ ऐसा करने में सक्षम होना चाहिए:
SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY
ध्यान रखें कि परिणाम आपकी अपेक्षा से थोड़ा अलग हो सकता है।
NOW()
एक रिटर्न DATETIME
।
और INTERVAL
नाम के अनुसार काम करता है, जैसे INTERVAL 1 DAY = 24 hours
।
तो अगर आपकी स्क्रिप्ट को चलाने के लिए cron'd है 03:00
, तो यह याद आएगी first three hours of records from the 'oldest' day
।
पूरे दिन का उपयोग करने के लिए CURDATE() - INTERVAL 1 DAY
। यह स्क्रिप्ट चलने पर ध्यान दिए बिना पिछले दिन की शुरुआत में वापस मिल जाएगा।
आप लगभग वहाँ हैं: यह है NOW() - INTERVAL 1 DAY
जरूर आप कर सकते हो:
SELECT * FROM table
WHERE DateStamp > DATE_ADD(NOW(), INTERVAL -1 DAY)
DATE_ADD
तब का उपयोग कर भ्रमित -1 day
।
किसी भी उत्तर को सही तरीके से उपयोग DATE_ADD
या नहीं देखा DATE_SUB
:
से 1 दिन घटाएं NOW()
...WHERE DATE_FIELD >= DATE_SUB(NOW(), INTERVAL 1 DAY)
से 1 दिन जोड़ें NOW()
...WHERE DATE_FIELD >= DATE_ADD(NOW(), INTERVAL 1 DAY)
जब खोज फ़ील्ड टाइमस्टैम्प है और आप कल से 0 घंटे और आज के उपयोग से रिकॉर्ड खोजना चाहते हैं
MY_DATE_TIME_FIELD between makedate(year(now()), date_format(now(),'%j')-1) and makedate(year(now()), date_format(now(),'%j'))
बजाय
now() - interval 1 day