Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 更新超过n分钟的记录_Sqlite - Fatal编程技术网

Sqlite 更新超过n分钟的记录

Sqlite 更新超过n分钟的记录,sqlite,Sqlite,我有一个sqlite数据库,其中有一个名为last_accessed的datatime字段和另一个名为stale的字段 对于超过5分钟的记录,如何更新stale字段 e、 g 这似乎不起作用 update mytable set stale=1,其中(datetime('now')-上次访问)>300 其实 选择日期时间(“现在”)-“2011-02-22 08:48:34”; 返回0 如何在sqlite3中执行算术 编辑: 因为我正在将上次访问的时间转换为日期时间,所以它只需要是一个秒字段。你

我有一个sqlite数据库,其中有一个名为last_accessed的datatime字段和另一个名为stale的字段

对于超过5分钟的记录,如何更新stale字段

e、 g

这似乎不起作用

update mytable set stale=1,其中(datetime('now')-上次访问)>300

其实 选择日期时间(“现在”)-“2011-02-22 08:48:34”; 返回0

如何在sqlite3中执行算术

编辑: 因为我正在将上次访问的时间转换为日期时间,所以它只需要是一个秒字段。你认为我应该把那个字段改成秒字段吗。那么我就不需要像strftime('%s',time('now'))-strftime('%s',上次访问)这样的操作了

编辑2: 据我所知,没有difftime函数。我发现您必须使用strftime('%s',datetime('now'))-。。。格式化以使其工作。然而,我只是简单地转换成一个整数字段,在这里我直接存储时间(NULL)。

我认为应该是这样

select datetime('now') - datetime('2011-02-22 08:48:34');

或者类似的东西(请参阅)。

来回答这个问题,以防其他人想知道如何在sqlite中正确执行日期/时间算术

正确答案是:

更新mytable set stale=1,其中strftime('%s',datetime('now'))-strftime('%s',上次访问)>300

但是,我实际上不需要表中的datetime格式,而是选择了数字字段。我不想再寻找这个问题的答案了


谢谢。

那还是不行。已转换为整型字段。应将此答案标记为已接受。这将使这个问题不会以未回答的问题出现。我会在stackoverflow允许的情况下尽快这样做。他们有两天的时间接受你自己问题的答案。