select orderno,round(months_between(sysdate,odate),'month') from order_master;执行以上语句后,显示 如下
select orderno,round(months_between(sysdate,odate),'month') from order_master
                                                   *
ERROR 位于第 1 行:
ORA-01722: 无效数字请问怎么解决啊帮帮忙

解决方案 »

  1.   

    补充:ORDER MONTHS_BETWEEN(ODATE,SYSDATE)查出的数据是如下:
    ORDER MONTHS_BETWEEN(ODATE,SYSDATE)
    ----- -----------------------------
    o002                     -13.080756
    o003                     -12.048498
    o004                     -10.758175
    o005                     -13.048498
    o006                     -14.080756
    o007                     -16.983982已选择6行。
      

  2.   

    既然MONTHS_BETWEEN函数的结果是数字,那你精确到'month'是错的吧
    就直接select orderno,round(months_between(sysdate,odate)) from order_master;
      

  3.   

    round(x[,y])   
      返回舍入到小数点右边y位的x值,y的缺省值为0.y可以为负数,那么就舍入到小数点左边相应的位上,但y必须是整数.
     SELECT   ROUND   (TO_DATE   ('27-OCT-92'),'YEAR')   
            "New   Year"   FROM   DUAL;   
          
      New   Year   
      ---------   
      01-JAN-93