Я делаю приложение, в котором хранятся названия книг, дата и дата, когда книга должна быть возвращена. Ниже я показываю оператор where
, который получает все книги, которые должны быть возвращены между сегодняшней датой и двумя днями, поэтому возвращается в виде списка. Она не работает, однако, и я не знаю, где я буду неправильно:Оператор SQlite WHERE не работает?
public Cursor fetchAllDue() {
//get todays date
Calendar cal=Calendar.getInstance();
int currentDay=cal.get(Calendar.DAY_OF_MONTH);
//Add days on to todays date
cal.set(Calendar.DAY_OF_MONTH, currentDay+2);
cal.getTime(); //Result
//format back to string
String formattedDate = new SimpleDateFormat("dd-MM-yyyy HH:mm").format(cal.getTime());
//get todays date
Calendar cal1=Calendar.getInstance();
int currentDay1=cal1.get(Calendar.DAY_OF_MONTH);
//Atodays date
cal1.set(Calendar.DAY_OF_MONTH, currentDay1);
cal1.getTime(); //Result
//format back to string
String formattedDate1 = new SimpleDateFormat("dd-MM-yyyy HH:mm").format(cal1.getTime());
//body = date added, needs to be changed
return mDb.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_TITLE,
KEY_BODY, KEY_EXTRA, KEY_DUE }, KEY_DUE + " BETWEEN 'formattedDate1' and 'formattedDate2'", null, null, null, null);
}
Это код, когда дата ввода для «даты»:
//convert string to int.
int myNum = Integer.parseInt(editbox3.getText().toString());
//get todays date
Calendar cal=Calendar.getInstance();
int currentDay=cal.get(Calendar.DAY_OF_MONTH);
//Add days on to todays date
cal.set(Calendar.DAY_OF_MONTH, currentDay+myNum);
cal.getTime(); //Result
//formate back to string
String formattedDate = new SimpleDateFormat("dd-MM-yyyy HH:mm").format(cal.getTime());
bundle.putString(NotesDbAdapter.KEY_DUE,formattedDate
.toString());
Даты всех строк. Может ли кто-нибудь помочь?
«Не работает» означает ошибку или неожиданные результаты? – PinnyM
Хорошо, что в списке нет книг. Такие неожиданные результаты. – Ruddy