select col1,col2,months_between(col1,col2) from text where

解决方案 »

  1.   

    select col1,col2,months_between(col1,col2) from test
      

  2.   

    用Months_Between计算出来的是以月为单位的小数.不能满足楼主所需。
    用下面的算法,应该可以。
    select (to_number(to_char(sysdate,'YYYY')) -to_number(to_char(sysdate - 10,'YYYY'))) * 12
      + to_number(to_char(sysdate,'MM')) -to_number(to_char(sysdate - 10,'MM')) aa 
    from dual;将sysdate换成col2,将sysdate-10换成col1就可以了。
      

  3.   

    select col1,col2,abs(trunc(months_between(col1,col2))) from test
      

  4.   

    select col1,col2,abs(trunc(months_between(col1,col2))) from test
      

  5.   

    select col1,col2,abs(trunc(months_between(col1,col2))) from test
      

  6.   

    select months_between(to_date('02-1-1','yy-mm-dd'),to_date('02-2-5','yy-mm-dd')) from tbl   返回结果: -1.1290323 ,而不是1 ??
      
      

  7.   

    month_between(date1,date2)
    如果两个日期中“日”相同,或分别是所在月的最后一天,那么返回的结果是整数。否则,返回的结果将包含一个分数部分(以31天为一月计算)
      

  8.   

    select months_between(trunc(date1,'mon'),trunc(date2,'mon'))
      from ...用trunc(date,'mon')获得该日期月首日期。