从Sqlite3数据库获取过去的数据

时间:2010-03-23 05:17:28

标签: sqlite

假设我每晚都会在sqlite3数据库中插入一个数据点。谁能告诉我如何获取过去30天的数据点?

谢谢, 拉吉

2 个答案:

答案 0 :(得分:1)

SQLite是一个非常轻量级的数据库引擎,据我所知,它不存储历史插入信息。在插入数据时,必须在表中设置一个日期字段。

一个可能的黑客攻击(如果你处于紧张的位置)是使用表的自动增量键/ id字段来获取最后30行。这仅在您从那时起没有删除任何数据并且每天只插入一行时才有效:

SELECT * FROM table WHERE id > ((SELECT MAX(id) FROM table) - 30)

答案 1 :(得分:1)

确保表中包含每个数据点的时间戳。

CREATE TABLE smodgen (
    id INTEGER NOT NULL,
    when DATETIME NOT NULL,
    sensor_value INTEGER NOT NULL,
    PRIMARY KEY (id));

然后您可以使用该时间戳来查询数据点。

SELECT id, when, sensor_value
FROM smodgen
WHERE
    when >= DATETIME('now', '-30 days');