1.不应该用保留字date作为字段名
2.select to_date(Xdate,'yyyymmdd')-to_date(m,'mm') from dual

解决方案 »

  1.   

    我是这样输入的
    SQL> select to_date('20020601','yyyymmdd')-to_date(05,'mm') from dual;
    ---------------------------------------------------------------
    结果怎么是这样
    TO_DATE(20020601,'YYYYMMDD')-TO_DATE(06,'MM')
    ---------------------------------------------
                                             -700而不是20020101呢???????????????????
      

  2.   

    select to_date('03','mm') from dual
    查看一下这个结果,结果应该是系统年该月一日然后你的算式中两个日期相减会得出天数,即-700了如果要得到你想要的20020101的效果,大概要这么写select substr('20020601',1,4)||(substr('20020601',5,2)-'06')||substr('20020601',7,2) from dual
      

  3.   

    这样做有个问题,就是12进制的问题,能不能用to_date来减,
      

  4.   

    SQL> select to_date('20041201','yyyymmdd')-interval '3' month from dual
      2  ;TO_DATE('20041201','YYYYMMDD')
    ------------------------------
    2004-9-1SQL>