【发布时间】:2012-09-14 11:44:34
【问题描述】:
我有一个名为 daily_mood 的表,它有三 (3) 列,如下所示:
CREATE TABLE daily_mood (moodid INTEGER PRIMARY KEY autoincrement,mood TEXT,mooddate DATETIME)
它的数据如下所示:
现在,我想完全根据心情日期列选择/删除从当前日期到 24 小时之前的所有行。
我试过这样的查询:
SELECT *from daily_mood where mooddate>=datetime('now', '-1 day');
结果应该是上面数据的 1 行(最后一行)。但是这里是 2.like
结果应该是最后一行。任何人都可以帮助我吗?谢谢。
【问题讨论】:
-
不是 sqllite 开发人员,但我建议您查看 SELECT datetime('now', '-1 day'); 的结果并验证它是否符合您的预期。
-
您是说输出的日期不是您所期望的吗?为了清楚起见,我建议的是一种调试方法,而不是解决您的问题的方法。
-
执行已发布的查询时会发生什么?它有什么问题?
-
@jmilloy:我需要从当前时间开始的 24 小时内的数据。结果在上面有 2 行。但它应该是最后一个。它只是从当前计算一整天,但我需要在 24 小时内准确。所以最终结果应该是上图中的最后一行。
-
我明白了。您需要比较时间戳而不是日期。这里有详细的解释可以帮助你:stackoverflow.com/questions/2930768/…