0

我怎样才能通过这种方式删除我的行?

我的桌子:

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

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

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

提前致谢!

4

2 回答 2

1

也许这会起作用:

DELETE FROM mytable WHERE datetime('now') > datetime(date, '+10 seconds')
于 2013-09-25T02:49:46.540 回答
1

首先,您必须确保您的字段中有有效的 SQLite 日期和时间字符串date(您没有显示该字段包含哪些数据的任何示例)。

然后,您必须使用此处描述的方法之一http://www.sqlite.org/cvstrac/wiki/wiki?p=DateAndTimeFunctions将日期转换为可减去的内容。可能最直接的方法是使用%s格式化字符串格式化每个值:

 strftime('%s', 'now') - strftime('%s', date_col)
于 2013-09-25T02:50:56.203 回答