/ / Ako používať funkciu sqlite DATE s metódou dotazu triedy SQLiteDatabase v systéme Android? - Android, databáza, sqlite, android-sqlite, android-kurzor

Ako používať funkciu sqlite DATE s metódou dotazu triedy SQLiteDatabase v systéme android? - android, databáza, sqlite, android-sqlite, android-kurzor

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ď č. 1

V 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