各位大侠:
我在oracle9数据库中,有个字段是varchar2类型的,里面存的是时间,格式如下"2007年10月08号15点05分",现在想查询日期是某一天到某一天之间的所有记录,比如从"2007年10月01号"到"2007年10月08号"之间的所有记录。这个该怎么作呢?注:查询某一天的记录,比如2007年10月08号的所有记录,可以这样写
select * from LOG where instr(OPE_DATE,'2007年10月08号')>0,OPE_DATE就是存放时间的varchar2字段。谢谢了!!

解决方案 »

  1.   

    select * from LOG where OPE_DATE between '2007年10月01号' and '2007年10月08号';
      

  2.   

    select * from log where to_date(ope_date, 'yyyy年mm月dd号hh24点mi分 ') between to_date(  '2007-10-01 ',  'YYYY-MM-DD ') AND  to_date(  '2007-10-08 ',  'YYYY-MM-DD ')
      

  3.   

    select * from log where to_date(ope_date, 'yyyy年mm月dd号hh24点mi分') between to_date(  '2007-10-01',  'YYYY-MM-DD') AND  to_date(  '2007-10-08',  'YYYY-MM-DD')
      

  4.   

    这个CSDN真怪,我用UBB回复的话,会自动在“'”单引号前加一个空格;
    我禁用UBB回复的话,会把单引号自动转换成双引号。真怪。
      

  5.   

    select * from LOG where OPE_DATE between  to_date('2007-10-01  ', 'YYYY-MM-DD  ')  and  to_date(   '2007-10-08',   'YYYY-MM-DD  ')