我想删除表MYTABLE中超过x天的所有行.列SAVE_DATE长是在表中插入行的时间.
我试过这个,但显然它删除了我的所有行:
long daysInMiliSec = new Date().getTime() - X
* (24L * 60L * 60L * 1000L);
return db.delete(MYTABLE , SAVE_DATE
" <= ?", new String[] { "" + daysInMiliSec }
Run Code Online (Sandbox Code Playgroud)
怎么了?
Yaq*_*mad 39
以下查询将删除超过2天的数据:
String sql = "DELETE FROM myTable WHERE Save_Date <= date('now','-2 day')";
db.execSQL(sql);
Run Code Online (Sandbox Code Playgroud)
use*_*036 10
因为这是谷歌的第一次点击,对初学者有更多的解释:
你不需要你用来访问sqlite DB的主程序中的时间/日期函数,而是直接使用sqlite日期函数.
您可以使用例如的年份的行条目创建表:
CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, text TEXT, age INTEGER)
Run Code Online (Sandbox Code Playgroud)
你写信给它
INSERT INTO test (text, age) VALUES ("bla", datetime('now'))
Run Code Online (Sandbox Code Playgroud)
在这里我使用了'datetime',因为这也可以让你以后搜索小时/分钟/秒.如果你不需要'date('now')'就足够了.
以下是日期函数的说明:https://www.sqlite.org/lang_datefunc.html
要选择比例如5分钟更早的所有内容:
SELECT * FROM test WHERE age <= datetime('now', '-5 minutes')
Run Code Online (Sandbox Code Playgroud)
您可以在上面的网站" Modifiers "一节中看到更多这些可能性.