MONTHS_BETWEEN (< date 1 >, < date 2>).

解决方案 »

  1.   

    String sql = " select to_char(months_between(sysdate,to_date(datetime,'yyyy-mm-dd hh24:mi:ss'))) as dd from vaildatecode where id='26'";
        Connection conn = xufei.getConnection();
        PreparedStatement ps = conn.prepareStatement( sql );
        ResultSet rs = ps.executeQuery();
        if( rs.next() ){
          //out.println( "sdfdc"+rs.getString("username")+":"+rs.getString("attribute")+":"+rs.getString("id"));
    out.print(rs.getString("dd"));
        }
    我就是用这个函数,可是当out.print(rs.getString("dd"));
        时,总是提示出错ORA-01861: literal does not match format string
      

  2.   

    datetime字段的格式是'YYYY-mm-dd hh24:mi:ss'吗?(包括空格)
    select 出来看一下
      

  3.   

    SQL> select months_between(sysdate,to_date('2003/12/31','yyyy/mm/dd')) from dual;MONTHS_BETWEEN(SYSDATE,TO_DATE('2003/12/31','YYYY/MM/DD'))
    ----------------------------------------------------------
                                                             3
    SQL> select months_between(sysdate,to_date('2003/12/1','yyyy/mm/dd')) from dual;MONTHS_BETWEEN(SYSDATE,TO_DATE('2003/12/1','YYYY/MM/DD'))
    ---------------------------------------------------------
                                                    3.9815173
    配合使用round(m,n)