SELECT sum(MONTHS_BETWEEN(TO_DATE(start_time,'YYYY-MM-DD'),TO_DATE(end_time,'YYYY-MM-DD'))) from T

解决方案 »

  1.   

    SELECT sum(MONTHS_BETWEEN(TO_DATE(substr(trim(start_time),1,7),'YYYY-MM'),TO_DATE(substr(trim(end_time),1,7),'YYYY-MM'))) from T
      

  2.   

    SELECT sum(MONTHS_BETWEEN(TO_DATE(substr(trim(start_time),1,7),'YYYY-MM'),TO_DATE(substr(trim(end_time),1,7),'YYYY-MM'))) from T
      

  3.   

    楼上的语句,应end_time在前,start_time在后。
      

  4.   

    select sum(abs(MONTHS_BETWEEN(TO_DATE(start_time,'YYYY-MM-DD'),TO_DATE(end_time,'YYYY-MM-DD')))) from table_name
      

  5.   

    select sum(abs(months_between(to_date(end_time,'yyyy-mm-dd'),to_date(start_time,'yyyy-mm-dd')))) from table_name;
      

  6.   

    楼上的各位兄弟,一个可怕的问题是
    1988-09-00这个日期用不能转换,因为日期位置是00,格式错误啊。to_date(end_time,'yyyy-mm-dd'),
      

  7.   

    select abs(months_between(to_date(substr(end_time,1,7) || '-01','yyyy-mm-dd'),to_date(substr(start_time,1,7) || '-01','yyyy-mm-dd'))) from table_name;