हर रिकॉर्ड मेरी SQLite
डेटाबेस में एक क्षेत्र है जो एक Date
प्रारूप 'yyyy-MM-dd HH:mm:ss'
में एक string
के रूप में जमा होता है शामिल हैं।SQLite आदेशानुसार दिनांक
क्या हालिया तारीख में रिकॉर्ड प्राप्त करने के लिए डेटाबेस से पूछना संभव है?
हर रिकॉर्ड मेरी SQLite
डेटाबेस में एक क्षेत्र है जो एक Date
प्रारूप 'yyyy-MM-dd HH:mm:ss'
में एक string
के रूप में जमा होता है शामिल हैं।SQLite आदेशानुसार दिनांक
क्या हालिया तारीख में रिकॉर्ड प्राप्त करने के लिए डेटाबेस से पूछना संभव है?
आप मेरी समस्या
select * from Table order by datetime(datetimeColumn) DESC LIMIT 1
हल करने के लिए जब से मैं datetime नहीं तिथि स्तंभ के रूप में यह भंडारण किया गया था इस तरह से इस
SELECT * FROM Table ORDER BY date(dateColumn) DESC Limit 1
ध्यान दें कि यदि आप दिनांक ** और समय ** के अनुसार आदेश देना चाहते हैं तो आपको 'दिनांक()' – eliocs
आप इसे यूनिक्स टाइमस्टैम्प कन्वर्ट करने के लिए की जरूरत है, और फिर उनकी तुलना:
SELECT * FROM data ORDER BY strftime('%s', date_column) DESC
लेकिन यह बहुत धीमी गति से हो सकता है, अगर वहाँ पंक्तियों के बहुत सारे हैं। बेहतर दृष्टिकोण डिफ़ॉल्ट रूप से यूनिक्स टाइमस्टैम्प को स्टोर करना होगा, और उस कॉलम के लिए एक अनुक्रमणिका बनाएं।
मेरे लिए मैं अपने प्रश्न था की तरह यह कर सकते हैं
के 'डेटाटाइम()' इंटीड का उपयोग करने की आवश्यकता है, इसके अतिरिक्त, दिनांक() फ़ंक्शन इस प्रारूप में तारीख लौटाता है: वाई वाई वाई वाई-एमएम-डीडी। समय() फ़ंक्शन एचएच के रूप में समय लौटाता है: एमएम: एसएस। डेटाटाइम() फ़ंक्शन "YYYY-MM-DD एचएच: एमएम: एसएस" लौटाता है। – wangqi060934
पिछले उत्तर की तुलना में आपने अपने उत्तर में क्या अंतर किया है? @ अहमद बराका –
@ गोथममब्रमण्यम तिथि के बजाए डेटाटाइम() का उपयोग कर() – AnthoPak
आप अपने कॉलम "sent_date_time" को yyyy-MM-dd प्रारूप में परिवर्तित कर सकते हैं और फिर
1) substr(sent_date_time,7,4)||"-"||substr(sent_date_time,1,2)||"-"||substr(sent_date_time,4,2) as date
2) order by date desc
द्वारा ऑर्डर कर सकते हैं
जब आप सुनिश्चित करें कि पाठ क्षेत्र का स्वरूप yyyy-MM-dd HH:mm:ss
(पूर्व .: 2017-01-02 16:02:55
) है, तो यह सिर्फ मेरे लिए काम करता है: किसी भी अतिरिक्त तिथि समारोह के बिना
SELECT * FROM Table ORDER BY dateColumn DESC Limit 1
!
मेरे मामले में सब कुछ ठीक है कास्टिंग कॉलम 'दिनांक' टाइप करने के लिए। बस डबल उद्धरण उस तरह के साथ स्तंभ नाम निर्दिष्ट द्वारा:
SELECT * FROM 'Repair' ORDER BY "Date" DESC;
मुझे लगता है कि SQLite ही या ऐसा ही कुछ द्वारा कास्टिंग बनाता है, लेकिन यह काम नहीं किया है, जब मैं अपने आप को द्वारा करने के लिए 'डाली' तिथि कॉलम की कोशिश की। और कोई त्रुटि संदेश नहीं था।
आपको तिथि को मिलीसेकंड में संग्रहीत करना चाहिए और इसे प्रदर्शित करने के लिए हर बार कनवर्ट करना चाहिए। यह सॉर्टिंग इत्यादि के दौरान इसे आसान बना देगा। – Andrei