把前面的限制条件也用to_char或to_date转换为同一类型再比较.试试看,呵呵

解决方案 »

  1.   

    如果'0000-00-00 00:00:00' 不是用sqlplus 列出来的,可能BEGINTIME,ENDtime 是Null值,需要用nvl(....,'1900-01-01 00:00:00')转换一下。
      

  2.   

    BEGINTIME,ENDtime不会出现NULL的情况。
    BEGINTIME,ENDTIME是由程序写进数据库的,它们的类型都是varchar2(19),not null。
    当一个程序执行一个操作失败时,ENDTIME的值就是'0000-00-00 00:00:00'.
      

  3.   

    SQL> select to_date('0000-00-00 00:00:00','yyyy-mm-dd hh24:mi:ss') from dual;select to_date('0000-00-00 00:00:00','yyyy-mm-dd hh24:mi:ss') from dualORA-01843: 无效的月份楼主现在知道了吧,oracle没有这种日期数据,当把它转为日期型就会报错,还是在你的程序中改良吧