如何从这种方式删除我的行?
我的表:
sqlite> .schema mytable
CREATE TABLE mytable (_id INTEGER PRIMARY KEY, hash TEXT, date TEXT);
我要删除所有行(当前时间 - 存储时间)> 10秒 我的查询不起作用:
DELETE FROM mytable WHERE (datetime('now') - datetime(date)) > 10;
提前致谢!
答案 0 :(得分:1)
也许这会奏效:
DELETE FROM mytable WHERE datetime('now') > datetime(date, '+10 seconds')
答案 1 :(得分:1)
首先,您必须确保date
字段中包含有效的SQLite日期和时间字符串(您不会显示该字段所包含的数据的任何示例)。
然后,您必须使用此处描述的方法之一http://www.sqlite.org/cvstrac/wiki/wiki?p=DateAndTimeFunctions将日期转换为可摘的内容。可能最简单的方法是使用%s
格式化字符串格式化每个值:
strftime('%s', 'now') - strftime('%s', date_col)