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

SQL查询里面比较的有关问题

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
SQL查询里面比较的问题
某个表里面有begindate、enddate两个字段(开始日期和结束日期),char(10)的格式(比如:2010-04-29)。
我想写个SQL可以查出sysdate在begindate和enddate之间的记录。

sysdate可以直接和char(10)的类型比较吗?

比如:
select table1.* from table1
where tochar(sysdate,'yyyy-mm-dd') between begindate and enddate;

------解决方案--------------------
select * 
from t
 where begindate >= to_char(trunc(sysdate), 'yyyy-mm-dd')
and enddate < to_char(trunc(sysdate) + 1, 'yyyy-mm-dd')


------解决方案--------------------
SQL code


select table1.* from table1
where to_char(sysdate,'yyyy-mm-dd')>=begindate and to_char(sysdate,'yyyy-mm-dd')<=enddate

------解决方案--------------------
你的写法是可以的,如果begindate和enddate上有索引,
你的写法是用不上索引的(除非另建函数索引),所以最
好不要在字段上加函数计算,推荐1楼的写法。
------解决方案--------------------
楼主的tochar应为to_char
------解决方案--------------------
select table1.* from table1
where to_char(sysdate,'yyyy-mm-dd') between begindate and enddate;
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: