表weather 字段为
dt(datetime),weather(char)
里面的数据如下
2013-06-30 晴
2013-07-01 雨
2013-07-02 未知
....
每天一条
select * from weather where dt='2013-07-01' 无结果(应该是有一条结果的)
select * from weather where dt>='2013-07-01' 有结果,其中也包括2013-7-1这条
select * from weather where dt>='2013-07-01' and dt<='2013-07-02' 只返回 2013-7-1这条
不返回 2013-7-2
-------------------------------
问题2,表zw 字段为
paydt(datetime) ,其它字段1,其它字段N...
2013-07-01 17:25:03 ,XXX,XXX
2013-07-01 17:20:05 ,XXX,XXX
....都是7.1产生的记录,有很多条。
select * from zw where paydt>='2013-07-01' and paydt<='2013-07-02' 有很多结果,正确
select * from zw where paydt>='2013-07-01T00:00:00' and paydt<='2013-07-02T00:00:00' 一个结果都没有,错误(应该有很多结果才对)
为什么=不行,>=就可以?如果日期应该是 2013-07-01T00:00:00 这样的格式,那么第二个表的问题无法解释啊。
请问sqlite日期倒底应该是什么样的格式?谢谢。
SQLite
------解决方案--------------------
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
------解决方案--------------------
select * from weather where dt>='2013-07-01' and dt<='2013-07-02' ;
dt weather
2013-7-1 晴
2013-7-2 晴
select * from zw where paydt>='2013-07-01T00:00:00' and paydt<='2013-07-02T00:00:00'
没有记录返回,SQLITE标准日期格式 YYYY-MM-DD HH:MM:SS
select * from zw where paydt>=
strftime('%Y-%m-%d %H:%M:%S','2013-07-01T00:00:00') and