删除方法无法正常工作

时间:2014-08-04 04:04:29

标签: android sqlite

我想在我的数据库中只保留最后22分钟的数据,因为我使用了这个

String[] str = null;
str = new String[]{"datetime('now','-22 minute')"};
databaseInstance.delete(table_n, "datetime(modified/1000,'unixepoch')<= ?", str);

在数据库中,已修改列的数据类型如下所示

"modified" DATETIME NOT NULL

但它删除了DB中的所有数据,这意味着在22分钟之前或22分钟后,所有数据都会从我们的表中删除。但是我希望在我们的表格中保留最后22分钟的数据。真的很感谢任何帮助,请有人带我离开这个问题。谢谢所有人。

1 个答案:

答案 0 :(得分:0)

使用参数(?)的时间点是避免解释它们,以便您能够在数据库中存储包含引号或函数名称的字符串。

要执行datetime函数,必须将其直接写入SQL语句:

db.delete(table_n, "datetime(modified/1000,'unixepoch') <= datetime('now','-22 minute')", null);

您可以将比较时间戳转换为表中使用的相同格式,而不是将表值转换为yyyy-mm-dd hh:mm:ss格式。 这将允许使用modified列(如果有)的索引:

db.delete(table_n, "modified <= strftime('%s','now','-22 minutes')*1000", null);