2013-10-08 45 views
0

我在sqlite中有一个表,它有一列timestamp数据类型。现在我想根据表格中的时间戳获取数据。格式为“yyyy-MM-DD HH:MM:SS”无法使用时间戳列从sqlite中获取数据

Select * from table where ts<'2013-10-08 04:30:00'

返回所有的数据,并没有返回具体到我所提到的时间数据。

是否有任何具体的方式来查询表使用时间戳列?

在此先感谢

+0

是您查询肯定吗?你在*今天的特定时间*之前要求一切*。如果您有任何数量的历史数据,那可能几乎是一切。 – shambulator

+0

@shambulator,查询是正确的,当我使用除当前日期以外的日期时的行为是相同的。 – user1140366

回答

0

你是正确的查询,它应该返回你正确的结果,我建议你检查表中的数据。

曾经做过在SQL小提琴测试,并正在检查下面的链接:

http://sqlfiddle.com/#!7/75cae/2

我的表包含:

'2013-01-07 04:30:00' 
'2013-01-20 05:30:00' 
'2012-12-30 04:30:00' 

和我的查询是:

SELECT * FROM t 
    WHERE dt > '2013-01-07 05:30:00' 

其中返回我:

2013-01-20 05:30:00 

编辑::

按照你对此有何评论更改格式:http://sqlfiddle.com/#!7/1b6f8/2

'2013-01-07 04:30PM' 
'2013-01-20 05:30PM' 
'2012-12-30 04:30AM' 

查询:

SELECT * FROM t 
WHERE dt > '2013-01-07 04:30:00' 

OR:

SELECT * FROM t 
WHERE dt > '2013-01-07 04:29PM' 

结果:

2013-01-07 04:30PM 
2013-01-20 05:30PM 
+0

嗨,山姆,表中的数据是'8/10/2013 4:45 PM'这种格式,即使我以这种格式'2013-08-10 16:45:55'插入它。这可能是它没有获取数据的原因吗?这是我的插入查询:INSERT INTO table(ts)VALUES('2013-08-10 16:45:55'); – user1140366

+0

@ user1140366看到我的编辑改变了格式,仍然返回正确的值..使用2个查询 – Zaki

+0

您使用的格式不同。我的表格中的数据采用以下格式:'2013年8月10日下午4:45' – user1140366

相关问题