在Linux里显示的日期会变为 2010-10-09 16:39:20.0 后面多了 .0 
在window里显示是正常的 ,有没统一设置一下的方法? 每个字段都去date_format有点麻烦

解决方案 »

  1.   

    结合你另一个贴子中的现象,怀疑不是MYSQL的问题,而是你的JAVA的问题。建议你先不用你的程序,直接用MYSQL自身的命令行工具在LINUX上操作MYSQL试一下。
    如果是你的JAVA自身的日期显示控制问题,则估计需要找到正确的JAVA包的版本。 具体JAVA有关的你可以到JAVA版去咨询一下。
      

  2.   

    如果mysql里设置的date_format是一样的话,理应该取出的结果是一样的。
    所以,有必要检查应用层:
    1. Java connector( jdbc驱动)版本是一样的吗?(两个平台)
    2. 在你的应用当中, 是不是用了什么日期格式显示设置把代码帖出来,最好。这种问题一般比较容易解决。
      

  3.   

    Action 里的简要代码
    conn.prepareCall("{call "+procedure+"(?)}");
    stmt.setObject(1,sql);         
    bl=stmt.execute();             
    CachedRowSetImpl crs =stmt.getResultSet();
    this.dbService.convertList(crs);
    convertList函数如下
    public  List convertList(CachedRowSetImpl rs)  {
    List list = new ArrayList();
    try{
      ResultSetMetaData md = rs.getMetaData();
      int columnCount = md.getColumnCount();
      
      while (rs.next()) {
     Map rowData = new HashMap();
         for (int i = 1; i <= columnCount; i++) {
           rowData.put(md.getColumnName(i), ""+rs.getObject(i)+"");        
         }
         list.add(rowData);
      }
      rs.close();
      rs=null;
    }
    catch(Exception e){e.printStackTrace();}
    return list;
    }前台页面直接用jstl输出  
      

  4.   

    与MYSQL无关,你程序的问题。
      

  5.   

    估计你取的是timestamp类型。
    在输出之前,必须得用 SimpleDateFormat("yyyy-MM-dd HH:mm:ss")格式化一下。不信你试试这个:
            java.sql.Timestamp ts = new java.sql.Timestamp(0);
            System.out.println(ts);
    也会多打一个.0
      

  6.   

    java.sql.Timestamp ts = new java.sql.Timestamp(0);
      System.out.println(ts);  
    是会多打个.0出来  看来都要format一次了 多谢2位的帮忙