Удаление с Android таблицы sqlite - PullRequest
2 голосов
/ 28 июня 2011

У меня есть столбец в таблице базы данных android sqlite. Значения в столбце:

2011/06/01
2011/06/02
2011/06/05
2011/06/10
2011/06/11
2011/06/13
2011/06/15
2011/06/16
2011/06/25
2011/06/26

У меня есть строка today="2011/06/27"

Теперь я хочу удалить те строки, значение столбца которых старше 5 дней с сегодняшнего дня.

Как изменить код для достижения этой цели?

return db.delete(DATABASE_TABLE,where date="", null) > 0;

Ответы [ 3 ]

0 голосов
/ 28 июня 2011

Вы должны хранить даты в другом формате, отметьте функцию даты SQLite .Используйте YYYY-MM-DD вместо YYYY/MM/DD.Вы уже получили заказ на ваши даты, определенные его строковым представлением.Таким образом, вы можете использовать функцию даты SQLite, чтобы выбрать правильные строки.

Запрашиваются даты старше 5 дней.

... WHERE datecolumn < date('now', '-5 days') ...
0 голосов
/ 15 июля 2011

В sqllite нет типа даты

, вы просто сохраняете представленное значение данных в виде строки или int

, а затем используете функции sqllite на основе даты для получения значений

0 голосов
/ 28 июня 2011

Вы должны использовать хранимую процедуру, а не писать сервис. Вашему приложению будет проще автоматически обновлять записи.

См. Ссылку: http://searchoracle.techtarget.com/answer/Time-based-stored-procedure-to-check-table-and-update-old-records

Другим решением является использование даты вместо строки. Когда вы запускаете службу, извлекайте данные как Дата, а затем вы можете сделать простое сравнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...