2010-01-26 16 views
5

हे दोस्तों, मेरे पास एक सारणी है जिसमें स्क्लाइट 3 में टाइमस्टैम्प वाला कॉलम है। यह CURRENT_TIMESTAMP के लिए डिफ़ॉल्ट है जैसे कि जब पंक्ति डाली जाती है, तो वर्तमान समय डाला जाता है। अब मैं उन पंक्तियों को लाने की कोशिश कर रहा हूं जो 2 दिन पहले या अधिक डाले गए थे। मुझे आश्चर्य है कि क्या यह कोई समझ में आता है।पंक्तियां प्राप्त करें जहां टाइमस्टैम्प कॉलम 2 दिन पुराना है

documentation पढ़ना मैं के साथ आया था:

SELECT * FROM test WHERE timestamp < strftime('%s', '-2 days')

लेकिन जाहिरा तौर पर यह गलत है। मैं इस क्वेरी के साथ आया क्योंकि यह मेरे वास्तविक कोड में परीक्षण कर रहा है:

strtotime($timestamp) < strtotime("-2 days")

लेकिन मुझे आशा थी कि sqlite3 में इस प्रकार की स्थिति के लिए कुछ अंतर्निहित चेक शामिल हैं।

धन्यवाद, मैं किसी भी प्रतिक्रिया की सराहना करता हूं।

संपादित: यह पता चल: SELECT * FROM test WHERE timestamp < date('now', '-2 days')

मैं मामले में इस खुले किसी ने कुछ बेहतर के साथ आ सकते हैं रखेंगे।

+0

क्या होगा, यह नहीं पता था कि यह उचित शिष्टाचार था: डी संपादित करें: मैं इसे दो दिनों में स्वीकार करूंगा, वह तब होगा जब सिस्टम मुझे इसे स्वीकार करने देगा :) –

उत्तर

1

तो मुझे लगता है कि मैंने इसे समझ लिया, यह मेरे लिए ठीक काम करता है। अगर यह यह करने का सबसे अच्छा तरीका है, लेकिन बिल्कुल स्पष्ट लगता है मैं नहीं जानता और जैसे मैंने कहा, काम करता है:

SELECT * FROM test WHERE timestamp < date('now', '-2 days') 
+0

क्या यह खाता अलग-अलग समय-क्षेत्रों के लिए है? –

4
postgres में

(मुझे पता है यह अपने मंच नहीं है, लेकिन मैं यहाँ के लिए पोस्टिंग कर रहा हूँ दूसरों के संदर्भ), आप भी कर सकते हैं निम्नलिखित:

SELECT * FROM test WHERE my_timestamp < NOW() - INTERVAL '2 DAY'; 
+0

यह वर्कइन पोस्टग्रेस्क्ल my_timstamp अब से() – Ashwin

0
SELECT * FROM test WHERE timestamp <= datetime('now','-2 days') 

जहां डेटा स्वरूप के रूप में लिंक में वर्णित निम्न स्वरूपों में से एक में होना चाहिए

https://www.sqlite.org/lang_datefunc.html

संबंधित मुद्दे