代码如下:select EXTRACT(year FROM to_date(sysdate,'yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd')) as years
from T1;在PL/SQL中运行后,报错提示“literal does not match format string”,怎么回事?

解决方案 »

  1.   

    SQL> select to_number(to_char(sysdate,'yyyy'))-to_number(to_char(to_date('1978-10-22', 'yyyy-mm-dd'),'yyyy')) from  dual;
     
    TO_NUMBER(TO_CHAR(SYSDATE,'YYY
    ------------------------------
                                31
      

  2.   

    1.select EXTRACT(year FROM sysdate ) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd')) as years
    from dual
      

  3.   

    你错在函数的用法:to_date(String,'format')sysdata是系统变量,非字符串。楼上正解!
      

  4.   

    select EXTRACT(year FROM sysdate) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd')) as years 
    from T1; 
      

  5.   

    sysdate是date类型,不需要to_date转换了!