Tengo una base de datos Sqlite en la que quiero seleccionar filas cuyo valor en una columna TIMESTAMP es anterior a una fecha determinada. Creo que esto es simple, pero no puedo hacerlo. He intentado esto:Cómo comparar valores sqlite TIMESTAMP
SELECT * FROM logged_event DONDE logged_event.CREATED_AT < '2010-05-28 16:20:55'
y diversas variaciones sobre el mismo, al igual que con las funciones de fecha. He leído http://sqlite.org/lang_datefunc.html y http://www.sqlite.org/datatypes.html y esperaba que la columna fuera de tipo numérico y que la comparación se hiciera en el valor de la marca de tiempo de Unix. Aparentemente no. ¿Alguien que pueda ayudar? Si es importante, estoy probando esto en Sqlite Expert Personal.
Editar:
Aquí está Tipo Descripción tabla:
CREATE TABLE [logged_event]
(
[id] INTEGER NOT NULL PRIMARY KEY,
[created_at] TIMESTAMP,
[name] VARCHAR(64),
[data] VARCHAR(512)
);
Y los datos de prueba:
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');
¿Qué versión de SQLite está ejecutando? La documentación 3.x.x no define en qué afinidad se basa una columna llamada TIMESTAMP. http://sqlite.org/datatype3.html –
Sqlite 3. Como todo lo que no está en un conjunto limitado de tipos de texto (TEXTO, BLOB, algunos otros) es numérico, de acuerdo con la documentación, asumí que TIMESTAMP sería un tipo numérico. De nota es que estoy creando esta tabla a través del asignador de ORM de Propel, y es una tabla autogenerada, por lo que no puedo cambiar fácilmente a otro tipo. Supongo que si pudiera hacer que esta columna se comportara como DATETIME, estaría a mitad de camino. – Roel