1.SELECT * FROM SSSS(表) WHERE TO_CHAR(IN_TIME,'YYYYMMDDHH24MISS')>='20101202070000' AND 
TO_CHAR(IN_TIME,'YYYYMMDDHH24MISS')<='20101202090000' 2.SELECT * FROM SSSS WHERE IN_TIME BETWEEN TO_DATE('20101202070000','YYYYMMDDHH24MISS') AND 
TO_DATE('20101202090000','YYYYMMDDHH24MISS') 2的执行速度明显要比1快很多,请问是什么原因了????是不是与表的属性相关?

解决方案 »

  1.   

    1,你是将日期转换为字符进行比较,而字符串比较是比较字符的ASCII码,并且是一个依次比较的,
    2:将字符转换为日期类型,然后时间之间的比较,忘记哪里看到过,数据库对时间的比较是换算成数值进行的比较,相对于ASCII一个一个比较会快点吧,个人是这么理解的
      

  2.   

    1,你是将日期转换为字符进行比较,而字符串比较是比较字符的ASCII码,并且是一个依次比较的,
    2:将字符转换为日期类型,然后时间之间的比较,忘记哪里看到过,数据库对时间的比较是换算成数值进行的比较,相对于ASCII一个一个比较会快点吧,个人是这么理解的