使用WHERE操作删除查询

时间:2013-09-25 02:26:46

标签: sqlite

如何从这种方式删除我的行?

我的表:

sqlite> .schema mytable
CREATE TABLE mytable (_id INTEGER PRIMARY KEY, hash TEXT, date TEXT);

我要删除所有行(当前时间 - 存储时间)> 10秒 我的查询不起作用:

DELETE FROM mytable WHERE (datetime('now') - datetime(date)) > 10;

提前致谢!

2 个答案:

答案 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)