【发布时间】:2011-02-22 18:39:45
【问题描述】:
我有一个 sqlite 数据库,其中包含一个名为 last_accessed 的数据时间字段和另一个名为 stale 的字段。
如何更新超过 5 分钟的记录的过时字段?
例如
这似乎不起作用。
update mytable set stale=1 where (datetime('now') - last_accessed) > 300;
事实上 选择日期时间('现在') - '2011-02-22 08:48:34'; 返回 0。
如何在 sqlite3 中进行算术运算?
编辑: 由于我将 last_accessed 转换为日期时间,实际上它只需要一个秒字段。你认为我应该将该字段转换为秒字段吗?那么我就不需要像 strftime('%s',time('now')) - strftime('%s',last_accessed) 这样的事情了?
编辑2: 据我所知,没有 difftime 功能。我发现您必须使用 strftime('%s', datetime('now')) - ... 格式才能使其工作。但是,我只是简单地转换为一个整数字段,我直接在其中存储时间(NULL)。
【问题讨论】:
标签: sqlite