2013-02-07 6 views
5

के लिए सभी रिकॉर्ड का चयन करें।SQLite मैं है मेरी डेटाबेस में निम्न तालिका आज और पिछले दिन

public Cursor fetchCurrentLogs(long dayExerciseDataID) { 
    // where day = today 
    Cursor cursor = database.rawQuery("select " + MySQLiteHelper.COLUMN_ID + "," + MySQLiteHelper.COLUMN_REPS + ", " + MySQLiteHelper.COLUMN_WEIGHT + " " + 
      "from " + MySQLiteHelper.TABLE_LOGS + " " + 
      "where " + MySQLiteHelper.COLUMN_ID_DAY_EXERCISE + " = '" + dayExerciseDataID + "'", null); 
    if (cursor != null) { cursor.moveToFirst(); } 
    return cursor; 
} 

अब मुझे क्या करना चाहते हैं, मैं इस समारोह केवल आज के लिए रिकॉर्ड हड़पने बनाना चाहते है:

अब मैं निम्नलिखित समारोह जो रिकॉर्ड के सभी पकड़ लेता है।

फिर मैं एक और कार्य बिल्कुल वही करना चाहता हूं, हालांकि आज के रिकॉर्ड प्राप्त करने के बजाय, मैं चाहता हूं कि यह पिछले दिन के रिकॉर्ड प्राप्त करे। पिछले तक, मेरा मतलब है कि सबसे हालिया दिन जिसमें रिकॉर्ड हैं जो आज नहीं है। तो यह कल, या 3 दिन पहले, या एक महीने पहले हो सकता है।

मैं MySQL में पता है कि तुम वर्तमान दिन के लिए कुछ इस तरह कर सकते हैं:

where date_format(from_unixtime(COLUMN_DATE), '%Y-%m-%d')= date_format(now(), '%Y-%m-%d')

SQLite के लिए इस के बराबर क्या है?

इसके अलावा, क्या कोई मुझे ऊपर बताए गए पिछले दिन के लिए कहां से मदद कर सकता है?

बहुत बहुत धन्यवाद।

+0

COLUMN_DATE में मूल्य क्या है? क्या यूनिक्स टाइमस्टैम्प में है? –

उत्तर

14
String sql = "SELECT * FROM myTable WHERE myDate >= date('now','-1 day')"; 
Cursor mycursor = db.rawQuery(sql); 

संपादित करें:

SELECT * from Table1 where myDate = (select max(myDate) from Table1 WHERE myDate < DATE('now')) 
+0

मुझे पिछले दिन के लिए केवल पिछले दिन के रिकॉर्ड का चयन करने की आवश्यकता नहीं है। पता है क्या मेरा मतलब है? तो मान लें कि मेरे पास डेटाबेस में प्रविष्टियां हैं, और 3 दिन पहले, और 6 दिन पहले, मैं चाहता हूं कि एक समारोह आज के लिए रिकॉर्ड प्राप्त करे, और दूसरा फ़ंक्शन 3 दिन पहले रिकॉर्ड प्राप्त करने के लिए। – scarhand

+0

आपके संपादन ने कमाल काम किया। धन्यवाद! – scarhand

+0

हाय मुझे वर्तमान तारीख के आखिरी 5 मिनट के रिकॉर्ड लाने की ज़रूरत है तो मैं इसे कैसे प्राप्त कर सकता हूं? @Yaqub –

-2

अपने SQL कथन में रूपांतरण न करें। अपनी जावा विधि में रूपांतरण करें। अपनी जावा विधि पूर्ण SQL कथन बनाएं। जावा डेटटाइम को यूनिक्स प्रारूप में बदलने के लिए आपको बस एक फ़ंक्शन चाहिए।

Cursor cursor = database.rawQuery("select " + MySQLiteHelper.COLUMN_ID + "," + MySQLiteHelper.COLUMN_REPS + ", " + MySQLiteHelper.COLUMN_WEIGHT + " " + 
      "from " + MySQLiteHelper.TABLE_LOGS + " " + 
      "where " + MySQLiteHelper.COLUMN_ID_DAY_EXERCISE + " = '" + dayExerciseDataID + 
      " OR " + MySQLiteHelper.COLUMN_ID_DAY_EXERCISE + " = '" + previousDay(dayExerciseDataID) + 
"'", null); 

आपको बस उस पिछली विधि को बनाने की आवश्यकता है।

0

हो सकता है यह बहुत देर हो चुकी है, लेकिन, यह किसी की मदद कर सकते हैं। मैं अलग तरह से पिछले डेवलपर्स के रूप में नहीं कर रहा हूँ, मैं बस अपना संस्करण रखना चाहते थे और शायद यह भी सबसे अच्छा नहीं है ...

String selectQuery = "SELECT * FROM "+Your_table+" 
WHERE ("+Column_1+" = "+Value_For_Column1+" AND date("+Your_Column_With_Time_Values+") == date('now')) AND 

"+Some_Other_Column+" = "+Some_Other_Value+" OR "+Some_Other_Column+" = "+Some_Other_Value+" ORDER BY "+Your_Column+" DESC"; 

अगर वहाँ कुछ गलती यह आसानी से स्ट्रिंग संयोजन के कारण हो सकता हो सकता है। धन्यवाद !!

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