2010-08-30 9 views
58

मैं एक सप्ताह पहले पुराने डेटा के साथ सभी रिकॉर्ड वापस करने के लिए एक mysql डीबी से कैसे पूछूं। ध्यान दें कि datetime तालिका यूटीसी में सब कुछ संग्रहीत करता है, और मैं ही है कि में तुलना किया जाना चाहिए ...MYSQL क्वेरी/1 सप्ताह पहले पुरानी तारीखें (यूटीसी में सभी डेटाटाइम)

Jusst स्पष्ट होना - मैं एक शुद्ध mysql क्वेरी के लिए देख रहा हूँ

उत्तर

156
SELECT * FROM tbl WHERE datetime < NOW() - INTERVAL 1 WEEK 

यदि आपकी तालिका NOW() रिटर्न की तुलना में अलग-अलग समय क्षेत्र में डेटाटाइम स्टोर करती है, तो आप यूटीसी में टाइमस्टैम्प प्राप्त करने के लिए UTC_TIMESTAMP() का उपयोग कर सकते हैं।

4
SELECT SUBDATE('2008-01-02', 7); 

या

SELECT SUBDATE(now(), INTERVAL 1 week); 

परिणाम:

2007-12-26

+0

मैं कैसे 7 दिन पहले आज से करते हो, दिनांक और समय चिह्नों ... – tzmatt7447

11
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7; 
+3

इस कोड को इस सवाल का जवाब कर सकते हैं के साथ, क्यों और/या कैसे इस कोड को उत्तर देता सवाल अपने लंबे को बेहतर बनाता है के बारे में अतिरिक्त संदर्भ प्रदान -टेरम मूल्य। – JAL

+0

यह छोटा है, क्या मुझे इसका इस्तेमाल करना चाहिए? – moeiscool

+0

शायद यह छोटा है लेकिन यह एक सूचकांक का उपयोग करने में सक्षम कैसे होगा। – swdev