Я хочу удалить некоторые записи из базы данных android, где выполняются два условия. 1. есть столбец с именем sync_status, он должен иметь значение «C» и 2. есть столбец с датой.удаление записей из sqlite по дате в android
Теперь я хочу удалить только те строки, где sync_status is = 'c', а дата меньше текущей даты устройства. У меня возникла проблема в сравнении текущей даты устройства с датой, хранящейся в базе данных, и моя функция удаляет все записи.
public int RemoveSyncData(){
DBHelper = new DatabaseHelper(context);
DateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy ");
Calendar calObj = Calendar.getInstance();
String currentDate = dateFormat.format(calObj.getTime());
Log.e("current date",currentDate);
int rows = db.delete(DATABASE_TABLE_DAILY_ATTENDANCE, KEY_ATTENDANCE_SYN_STATUS + "= ? and " + KEY_ATTENDANCE_DATE_ONLY + " != '" + currentDate + "'", new String[] {"C"});
db.close();
return rows;
}
Если вы сохраняли дату как простое значение 'long' (например, вы получаете от' System.currentTimeMillis() '), это было бы намного проще. Возможно, вы можете изменить способ хранения даты? – Karakuri
Я сохраняю дату в строке. – Andrain
Да, я это понимаю. Я предполагаю, что было бы проще ** не ** хранить его как строку, а просто как «длинную». Сохранение его в виде строки затрудняет сравнение, подобное тому, которое вы хотите сделать в своем вопросе. – Karakuri