不用这么复杂,因为日期型可以支持直接比大小,再退一步字符型也支持比大小,嘻嘻
SCATS.PHASE.START_TIME between p_DateFrom and p_DateTo;
或者
to_char(SCATS.PHASE.START_TIME,'YYYYMMDD') between to_char(p_DateFrom,'YYYYMMDD') and to_char(p_DateTo,'YYYYMMDD');

解决方案 »

  1.   

    select * from SCATS.PHASE
    where SCATS.PHASE.START_TIME between p_DateFrom and p_DateTo取两个时间之间的时间:
    between 时间1 to 时间2   
    另外。时间字段可以直接比大小,不用转换数字。也可以直接相减,差值为数字(单位天)
      

  2.   

    但是,我输入的p_DateFrom和p_DateTo是VARCHAR2,而且是这样输入的14-01-04和16-01-04,就是说我要查的2004年1月14日到2004年1月16日,这三天的时间段,具体是怎么实现的?谢谢,请各位帮帮忙.
      

  3.   

    还是可以使用between啊,如:
    SCATS.PHASE.START_TIME between to_date(p_DateFrom,'dd-mm-yy') and to_date(p_DateTo,'dd-mm-yy');
      

  4.   

    我再请问一下,TO_DATE转化的时间是不是,指的是某一天的零点,即00:00:00