初学,oracle里数据库查询语句:
select * from table_name where jxlx='03002' and to_char(JCSJ,'yyyy-mm-dd') between '2007-9-1' and '2007-9-20'执行此语句,也不提示语法错误,也没有查询到结果,实际上是有符合条件的记录的,因为单独执行select * from table_name where jxlx='03002' ,在查看jcjs字段,有符合第一条sql语句中9-1到9-20号时间段的 数据。不知道为什么,我觉得是有逻辑上的错误,但不知如何改,向大家请教啦!

解决方案 »

  1.   

    --改为: 
    Select * from table_name where jxlx='03002' and 
     to_char(JCSJ,'yyyy-mm-dd') between '2007-09-01' and '2007-09-20'
      

  2.   

    jcSJ应该是DATETIME类型的吧,应该这样喽
    select * from table_name where jxlx='03002' and JCSJ between to_date('2007-9-1','yyyy-mm-dd') and to_date('2007-9-20 23:59:59','yyyy-mm-dd hh24:mi:ss)截止时间最好到23:59:59否则默认是00:00:00,那最后天的就取不到了,不如果你本身的要求就是不包含最后天那就不用这么写
      

  3.   

    WangZWang(先来) 
    不说,我还没注意到,确实日期格式有问题