假设我每晚都会在sqlite3数据库中插入一个数据点。谁能告诉我如何获取过去30天的数据点?
谢谢, 拉吉
答案 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');