那个大侠知道如何计算两个时长的距离,比如:开始时间为“201008”,结束时间为“200903”,都是varchar2(6)类型,如何计算中间间隔的月份?

解决方案 »

  1.   

    -- 用months_between()函数,如:
    select months_between(sysdate,sysdate-100) from dual;
      

  2.   

    SELECT MONTHS_BETWEEN(TO_DATE('201008'||'01','YYYYMMDD'),TO_DATE('200903'||'01','YYYYMMDD'))
    FROM DUAL;
      

  3.   

    select trunc((to_number(y) - to_number(x))/12) + mod(to_number(y) - to_number(x),12)  as result from dual
      

  4.   


      1* select months_between(to_date('201008','yyyymm'),to_date('200903','yyyymm')) months from dual
    SQL> /    MONTHS
    ----------
            17
      

  5.   


    顶了,先使用to_date()将字符转化成日期类型,再使用months_between函数
      

  6.   

    群里面的人都很热心,简单问题,那么多人回答,看来我们CSDN越来越有人气了!大家努力啊