2009-11-11 12 views
53

मैं MYSQL के साथ खेल रहा था और मुझे पता है कि एक सीमा कमांड है जो कुछ निश्चित परिणामों को दिखाता है, लेकिन मैं सोच रहा था कि क्या MySQL अकेले केवल पिछले 3 दिन या कुछ दिखा सकता है। बस सोच रहा।MySQL पिछले कुछ दिनों में चुनें?

अद्यतन: मैंने समय स्टोर करने के लिए अब() का उपयोग किया।

+0

@Doug, हमें कुछ और जानकारी दे कृपया। आपका रिकॉर्ड समय DATETIMEs, DATE, TIMESTAMPs, युग टाइमस्टैम्प आदि का आकलन कैसे करता है? क्या आप पिछले तीन दिनों से (CURRENT_DATE() - इंटरवल 3 दिन) या हाल के रिकॉर्ड से चाहते हैं? आदि – pilcrow

उत्तर

115

उपयोग:

WHERE t.date >= DATE_ADD(CURDATE(), INTERVAL -3 DAY); 

चेक DATE_ADD प्रलेखन।

या आप उपयोग कर सकते हैं: -3 मूल्य पर

WHERE t.date >= (CURDATE() - INTERVAL 3 DAY) 
+3

"WHERE t.date> = (CURDATE() - अंतराल 3 दिन)" पर्याप्त होना चाहिए –

+0

बहुत रूचि! मैंने इसे DATE_ADD के साथ चलाने का प्रयास किया और यह वाक्यविन्यास के कारण विफल रहा। हालांकि, यह DATE_ADD के बिना काम किया, इसलिए मैंने केवल 'CURDATE() - INTERVAL 3 DAY' का उपयोग किया। ऐसा क्यों है? – Strawberry

+1

मैं इसे phpmyadmin के माध्यम से चला रहा था अगर इससे कोई फर्क पड़ता है। – Strawberry

2

आप ऐसा करने के लिए UNIX_TIMESTAMP() फ़ंक्शन के संयोजन का उपयोग कर सकते हैं। एक तारीख तीन दिन पहले के लिए

SELECT ... FROM ... WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(thefield) < 259200 
+1

@ टर्नर, सावधानी, दिनों में हमेशा 86,400 सेकेंड नहीं होते हैं, लीप सेकंड और डेलाइट बचत के साथ क्या होता है। – pilcrow

+0

सच है। लेकिन यह दुर्लभ है कि आपको उस स्तर की सटीकता की आवश्यकता होगी, और यह मूल प्रश्न की तरह नहीं था। – Turnor

+0

@pilcrow इसे ध्यान में रखते हुए, आप तब सवाल कैसे करेंगे? –

-2

WHERE t.date >= DATE_ADD(CURDATE(), INTERVAL '-3' DAY);

उपयोग उद्धरण

9

आप अपने MySQL में इसका उपयोग कर सकते कहां खंड रिकॉर्ड पिछले भीतर बनाए जाते वापस जाने के लिए 7 दिन/सप्ताह:

created >= DATE_SUB(CURDATE(),INTERVAL 7 day)

एचएच: मिमी: एसएस संकल्प देने के लिए घटाव में अब() का उपयोग करें। तो पिछले 24 घंटों के भीतर (दूसरी करने के लिए) वास्तव में बनाया रिकॉर्ड वापस जाने के लिए, तुम कर सकते हो:

created >= DATE_SUB(NOW(),INTERVAL 1 day)

-2
SELECT DATEDIFF(NOW(),pickup_date) AS noofday 
FROM cir_order 
WHERE DATEDIFF(NOW(),pickup_date)>2; 

या

SELECT * 
FROM cir_order 
WHERE cir_order.`cir_date` >= DATE_ADD(CURDATE(), INTERVAL -10 DAY) 
संबंधित मुद्दे