当前位置: 代码迷 >> 其他数据库 >> 关于sqlite日期的有关问题
  详细解决方案

关于sqlite日期的有关问题

热度:376   发布时间:2016-05-05 08:23:32.0
关于sqlite日期的问题
表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 
  相关解决方案