当前位置: 代码迷 >> 其他数据库 >> 大侠,SQLite3按时间段搜索的一个怪异有关问题
  详细解决方案

大侠,SQLite3按时间段搜索的一个怪异有关问题

热度:9567   发布时间:2013-02-26 00:00:00.0
请教各位大侠,SQLite3按时间段搜索的一个怪异问题。
数据库是SQLITE3,里面有近2000条数据,2009年的数据和2010年的数据都有

想用下面这条语句查询今年的数据,死活没有查询结果。

select * FROM [Content] where PostTime between '2010-1-1 0:0:0' and '2010-1-18 16:45:48'

不管是用C#语句 还是直接用SQLite Expert查询都没结果

然后我试着将'2010-1-1 0:0:0' 改成'2009-12-31 0:0:0' 

select * FROM [Content] where PostTime between '2009-12-31 0:0:0' and '2010-1-18 16:45:48'

这样数据就出来了。 数据库里PostTime类型是TIMESTAMP。

真是欲哭无泪啊,是我语句写错了还是SQLite本身就有BUG?

小弟分不多,拜求各位大侠有没有遇到过这样的情况?望不吝赐教啊~!  


------解决方案--------------------------------------------------------
select * FROM [Content] where PostTime between '2009-12-31 0:0:0' and '2010-1-18 16:45:48'

贴出你的记录。 不会都是'2009-12-31 0:0:0' 到 '2009-12-31 23:59:59' 的记录吧。
------解决方案--------------------------------------------------------
select * FROM [Content] where PostTime between '2010-1-1 00:00:00' and '2010-1-18 16:45:48'

OR

用strftime设置格式

------解决方案--------------------------------------------------------
建议楼主做个测试,并提供你的测试语句。

1。 重新建个表 create table test (..... t1 timestamp ...)
2。插入两到三条数据。2010-1-1 0:0:0 之后的和009-12-31 0:0:0' and '2010-1-18 16:45:48'各放两条。

然后再测试你的语句。这样就可以断定是你自己的代码的问题还是SQLite的问题。
99.97%的可能性,是你自己的代码问题