String sql="select distinct xfdate from xiaofei where regname like '%"+userid+"%' order by xfdate";
 ResultSet rs = stmt.executeQuery(sql);按以上查询的结果是
2009/9/7
2009/9/10
2009/10/12
2010/1/3
2010/10/23但是我想把它显示成2009/9/
2009/9/
2009/10/
2010/1/
2010/10/请教代码应该怎么写?

解决方案 »

  1.   

    如果你的数据库存储类型为时间类型,你可以使用SimpleDateFormat这个类,大概是这样做SimpleDateFormat sdf=new SimpleDateFormat("YYYY/MM/");
    sdf.format(date);
      

  2.   

    是在用ORACLE吗? 很简单,如果查询出来的是string 直接 sql语句改为 String sql="select distinct to_char(xfdate,'yyyy/mm/') from xiaofei where regname like '%"+userid+"%' order by xfdate";如果查询出来的是date 改为sql语句改为 String sql="select distinct to_date(to_char(xfdate,'yyyy/mm/'),'yyyy/mm/') from xiaofei where regname like '%"+userid+"%' order by xfdate";
      

  3.   

    其实一般都是输出(yyyy-mm-dd)2010-01-05 这种形式的
      

  4.   

    至于不是日期类型,就可以在读出来之后使用String类的substring函数处理一下再显示
      

  5.   

    把你的sql修改成:String sql="select distinct to_date(xfdate,'yyyy/mm/') from xiaofei where regname like '%"+userid+"%' order by xfdate";
      

  6.   

    循环取出rs中每条记录的值,取出以后做字符串的截取就可以了
    XX.Substring(0,XX.lastIndexOf("/")+1);
      

  7.   

    在代码中添加了substring,但是对这个不是很懂,好像缺少什么,帮忙看一下吧<%
      request.setCharacterEncoding("gb2312");
      String strError = null;
      String userid=(String)session.getAttribute("user");
      try{
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection con = DriverManager.getConnection("jdbc:odbc:goodschaginfo");
      Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      String sql="select distinct xfdate from xiaofei where regname like '%"+userid+"%' order by xfdate";  ResultSet rs = stmt.executeQuery(sql);
      
      
       
      while(rs.next())
      {
      
    xfdate.Substring(0,6);  %>
      <option value="<%=rs.getString("xfdate")%>">    <%=rs.getString("xfdate")%></option> 
    <%
    }
      
      rs.close();
      stmt.close();
      con.close();
       
      }
      
      

  8.   

    1.很不懂楼主,上面不是已经很详细说明你说得那种问题在sql语句就可以解决了吗。不需要查询出来再去处理。
    2.是在用ORACLE吗? 很简单.
    如果查询出来的是string 直接 sql语句改为 String sql="select distinct to_char(xfdate,'yyyy/mm/') from xiaofei where regname like '%"+userid+"%' order by xfdate";
    3.如果查询出来的是date 改为sql语句改为 String sql="select distinct to_date(to_char(xfdate,'yyyy/mm/'),'yyyy/mm/') from xiaofei where regname like '%"+userid+"%' order by xfdate";
    4. 其实一般都是输出(yyyy-mm-dd)2010-01-05 这种形式的
    String sql="select distinct to_char(xfdate,'yyyy-mm-dd') from xiaofei where regname like '%"+userid+"%' order by xfdate";
      

  9.   

    还没有解决,13楼的,你说的方法我都用过,但是都不成功,我的数据库是access
      

  10.   

    <option value="<%=rs.getString("xfdate")%>"> <%=rs.getString("xfdate")%></option>  
    -------------------->>>>>>>>
    <%
    String d = rs.getString("xfdate");
    d = d.substring(0,d.lastIndexOf("/")+1);
    %>
    <option value="<%=d%>"> <%=d%></option>