Я сохраняю значения из Calendar.getTime () в поле базы данных SQLite, которое называется «Создано», когда вставляются новые записи.
В поле «datetime» хранятся значения в следующем формате: EEE MMM dd HH: мм: сс z гггг.
Мое приложение имеет 2 средства выбора даты, поэтому вы можете выбрать начальную и конечную дату / время для создания диапазона - все, что мне нужно сделать, - это запустить запрос, чтобы вернуть записи, которые были созданы за этот промежуток времени, но это доставляет мне большую головную боль !
Мой запрос выглядит так:
public Cursor GetAllByDateRange(Date dtStart, Date dtEnd) {
return database.query(DATABASE_TABLE, new String[] {
KEY_id, KEY_CREATED, KEY_VALUE, KEY_DESCRIPTION, KEY_ISEXPENSE},
KEY_CREATED + " BETWEEN '" + dtStart + "' AND '" + dtEnd + "'",
null, null, null, KEY_CREATED + " DESC");
}
Мне кажется, я понимаю проблему, но не знаю, как ее решить, я думаю, что этот подход не будет работать, потому что SQLite хранит даты в формате String (если это правда, я не уверен, почему у них даже есть тип Date!) , поэтому они сравниваются как строки, а не даты ..
Похоже, мои возможности ограничены, потому что мне нужно записать время и дату, потратив большую часть сегодняшнего дня на траление в сети, и я в полной растерянности - кто-нибудь может подсказать, как мне двигаться дальше?
Спасибо!