Ich habe eine SQLite-Datenbank, die eine Tabelle von Aufgaben enthält, die eine Spalte von dueDates enthält. Ich möchte Daten filtern, die nach dem Datum von morgen liegen.Wie bekomme ich die Zeilen nach morgen?
Wenn morgen das Datum 29. April ist, sollte ich die Daten nach morgen bekommen. Ich möchte die Anzahl der Aufgaben, die übermorgen sind, bekommen.
Dazu habe ich die Zeichenfolge in ein Datum umgewandelt. Das Format ist:
Calendar calendar = Calendar.getInstance();
dateToday = calendar.getTime();
SimpleDateFormat df = new SimpleDateFormat("d MMM yyyy");
dueDateToday = df.format(dateToday);
calendar.add(Calendar.DAY_OF_YEAR, 1);
dueTomorrow = calendar.getTime();
dueDateTomorrow = df.format(dueTomorrow);
und die Abfrage ist:
public int getPendingTasksLaterDays(String tomorrow) {
ArrayList<Task> conList = new ArrayList<Task>();
String selectQuery = "SELECT * FROM " + TASK_TABLE + " WHERE " + KEY_TASK_STATUS + " = 1" + " AND " + KEY_DUE_DATE + " > '" + tomorrow + "'" ;
SQLiteDatabase db = this.getWritableDatabase();
Cursor mCount= db.rawQuery(selectQuery,null);
if (mCount.moveToFirst()) {
do {
count = mCount.getInt(0);
} while (mCount.moveToNext());
}
Log.d("query",selectQuery);
Log.d("count",String.valueOf(count));
mCount.close();
return count;
}
Aber die Abfrage funktioniert nicht für mich. Die Anzahl, die ich bekomme, ist 0. Was mache ich falsch?
SQLite verwendet nicht 'd MMM yyyy' als Dateformat ohne benötigen. Weitere Informationen finden Sie im Abschnitt "Time Strings" in der [SQLite-Dokumentation] (https://www.sqlite.org/lang_datefunc.html). –