专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle管理

sql 按时间段查询,该怎么处理

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
sql 按时间段查询
出现比较奇怪的现象,
查询语句 select *from table where period between '2011-1'and '2011-10'
实际内容的时间在 2011-1 到2011-5 之间,但是只查询出来2011-1的,
如果换成时间段在between 2011-1 and 2011-9 又能全部查出来
就是2011-10,2011-11,2011-12 查询会失败,这是什么原因,哪位大侠能帮我解释一下,谢谢!

------解决方案--------------------
你的period应该是字符串类型
字符串比较大小是按从左到右,每一位来比较的
就像'20'首位是2,比'1000'首位是1大
所以'20'>'1000'

用字符串存日期类型,注意将月份、日期补0
这样'2011-01'就可以和'2011-10'比较了
要么转为日期类型再比较
 to_date(period,'yyyy-m') between to_date('2011-1','yyyy-m') and to_date('2011-10','yyyy-m')
 
------解决方案--------------------
SQL code

select *from table where period between to_date('2011-01', 'YYYY-MM')and to_date('2011-10', 'YYYY-MM');

------解决方案--------------------
to_date转换一下类型吧
------解决方案--------------------
探讨
SQL code

select *from table where period between to_date('2011-01', 'YYYY-MM')and to_date('2011-10', 'YYYY-MM');
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: