我想在我的数据库中只保留最后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分钟的数据。真的很感谢任何帮助,请有人带我离开这个问题。谢谢所有人。
答案 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);