používam query
funkcia v SQLiteDatabase
trieda v systéme Android na načítanie obsahu z databázy sqlite. Funguje to dobre. Ale keď som sa snaží použiť date
funkciu sqlite v mojom dotaze nasledovne, nevracia žiadne riadky.
SQLiteDatabase mDb = mDbHelper.getWritableDatabase();
String [] selectionArgs = new String[] {"date("2016-02-10 00:00:00")"};
String selection = "date(column_name) = ?";
String limit = 4;
String[] ALL_COLUMNS = new String[] { "id", "column_name","column_name2"};
cursor = mDb.query("table_name", ALL_COLUMNS,selection , selectionArgs, "column_name" + " DESC", limit);
if (cursor != null) {
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
//code to read each row
}
cursor.close();
}
Môže mi niekto povedať, čo sa deje s vyššie uvedeným kódom?
tiež existuje spôsob porovnania dátumu (a nie času) z databázy sqlite pomocou SQLiteDatabase
trieda query
fungujú?
odpovede:
0 pre odpoveď č. 1V SQLite sú dátumy reťazce. referencie: https://www.sqlite.org/lang_datefunc.html
Preto jednoducho odstráňte date()
fungujú od hodnoty dátumu a od názvu stĺpca:
t.j. zmeniť
String [] selectionArgs = new String[] {"date("2016-02-10 00:00:00")"};
String selection = "date(column_name) = ?";
do tohto
String [] selectionArgs = new String[] {"2016-02-10"};
String selection = "column_name = ?";
Ak potrebujete aj čas:
String [] selectionArgs = new String[] {"2016-02-10 00:00:00"};
String selection = "column_name = ?";
Pozrite si reťazce datetime podporované SQLite vo vyššie uvedenom odkaze