У меня есть база данных Sqlite, в которой я хочу выбрать строки, значение которых в столбце TIMESTAMP до определенной даты. Я бы подумал, что это просто, но я не могу это сделать. Я попытался это:Как сравнить значения sqlite TIMESTAMP
SELECT * FROM logged_event WHERE logged_event.CREATED_AT < '2010-05-28 16:20:55'
и различные вариации на ней, как с функциями даты. Я читал http://sqlite.org/lang_datefunc.html и http://www.sqlite.org/datatypes.html, и я ожидал бы, что столбец будет иметь числовой тип и что сравнение будет выполнено по значению timestamp unix. Совершенно очевидно. Кто может помочь? Если это имеет значение, я пробую это в Sqlite Expert Personal.
Edit:
Вот тип Описание таблицы:
CREATE TABLE [logged_event]
(
[id] INTEGER NOT NULL PRIMARY KEY,
[created_at] TIMESTAMP,
[name] VARCHAR(64),
[data] VARCHAR(512)
);
И данные испытаний:
INSERT INTO table VALUES(1,'2010-05-28T15:36:56+0200','test','test');
INSERT INTO table VALUES(2,'2010-05-28T16:20:49+0200','test','test');
INSERT INTO table VALUES(3,'2010-05-28T16:20:51+0200','test','test');
INSERT INTO table VALUES(4,'2010-05-28T16:20:52+0200','test','test');
INSERT INTO table VALUES(5,'2010-05-28T16:20:53+0200','test','test');
INSERT INTO table VALUES(6,'2010-05-28T16:20:55+0200','test','test');
INSERT INTO table VALUES(7,'2010-05-28T16:20:57+0200','test','test');
Какую версию SQLite вы используете? Документация 3.x.x не определяет, какой столбец с именем TIMESTAMP отличен по типу. http://sqlite.org/datatype3.html –
Sqlite 3. Поскольку все, что не ограничено набором текстовых типов (TEXT, BLOB, несколько других), является числовым, согласно документации, я предположил, что TIMESTAMP будет числовой тип. Следует отметить, что я создаю эту таблицу с помощью инструмента Propel ORM, и это автоматически сгенерированная таблица, поэтому я не могу легко переключиться на другой тип. Я думаю, если бы я мог заставить этот столбец вести себя как DATETIME, я был бы на полпути. – Roel