Пока вы спрашиваете об Android, я предполагаю, что база данных, которую вы используете, - SQLite.SQLite не имеет типа данных на дату.Таким образом, у вас есть несколько вариантов: сохранить дату в виде строки (как вы это сделали) или сохранить временную метку даты.
Я настоятельно рекомендую вам использовать второй вариант, поскольку он собирается конвертировать ваши даты в целые числаи это будет еще проще для обработки.
Таким образом, если вы хотите выбрать только события за последние 31 день, вы можете сделать:
SQLiteDatabase database = helper.getWriteableDatabase();
final long millisIn31Days = 31 * 24 * 60 * 60 * 1000;
String where = "<your-date-column> >= ?"
String [] whereArgs = { String.valueOf(new Date().getTime() - millisIn31Days) };
Cursor cursor =
database.query("<TABLE_NAME>", null, where, whereArgs, null, null, null);
Обратите внимание, что здесь я пишу в угловых скобках всезначения, которые вы должны на самом деле заполнять правильными константами.
Если вы, однако, хотите придерживаться строкового решения, вы все равно можете продолжить сравнение строк, если вы правильно указали формат даты(у тебя, похоже, так).В строковом решении вам нужно будет рассчитать дату 31 дня назад.Для этого вы можете использовать вспомогательные методы класса Calendar
.