Получить прошлые данные из базы данных Sqlite3 - PullRequest
0 голосов
/ 23 марта 2010

Предположим, я каждую ночь вставляю точку данных в базу данных sqlite3. Может кто-нибудь сказать мне, как получить данные точек за последние 30 дней?

Спасибо, Радж

Ответы [ 2 ]

1 голос
/ 23 марта 2010

Убедитесь, что в таблице есть отметка времени каждой точки данных.

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');
1 голос
/ 23 марта 2010

SQLite - это очень легкий движок БД, поэтому, насколько я знаю, он не хранит историческую информацию о вставке. В вашей таблице должно быть поле даты, которое устанавливается при вставке данных.

Один из возможных способов взломать эту проблему (если вы находитесь в затруднительном положении) - использовать поле ключа / идентификатора автоинкремента в таблице, чтобы получить последние 30 строк. Это будет работать, только если с тех пор вы не удаляли данные и вставляли ровно одну строку в день:

SELECT * FROM table WHERE id > ((SELECT MAX(id) FROM table) - 30)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...