首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

关于sqlite日期的有关问题

2013-07-08 
关于sqlite日期的问题表weather 字段为dt(datetime),weather(char) 里面的数据如下2013-06-30晴2013-07-01

关于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' ;
dtweather
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 


paydt<=strftime('%Y-%m-%d %H:%M:%S','2013-07-02T00:00:00')   ;


paydtoptype
2013-7-1 17:25:03
2013-7-1 17:20:05
2013-7-1 17:35:03

热点排行