数据库是 datetime 型~mysql的datime 型 它的基本格式就是 YYYY-MM-DD hh:mm:ss 这样的 我插入的字符串就是符合这个格式的 比如 2005-04-12 19:00:00 这样的 上边我说的哪个有些错误(2005-04-12:18:00:00-不是这样的 多了个:)

解决方案 »

  1.   

    应该使用setTimestamp方法来插入时间
      

  2.   

    插入的时候用String类型
    setString(2,new DateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
    或者
    sql语句修改为
    dbconnection.prepareStatement("insert into mytable <xid,xtime> values <?,now()>");
    now()函数默认也是这个格式的读数据的时候
    String date=rs.getString("xtime"):
      

  3.   

    其实是怎么说呢 不是格式的问题 即使
    insert into mytable <xid,xtime> values <?,2005-04-12 21:00:00");这样插入数据 在数据库中可以看到数据是 2005-04-12 21:00:00 而最后我 getXtime()出的时候还是给截掉了时间只有日期 这个情况我一直不知道在读出来的拿一步导致的 
    楼上的说的方法 now()函数确实可以 但是读出来的时候同样不行。
    第2种方法 我的字符串就是用类似的 SimpleDateFormat 的静态方法生成的。
      

  4.   

    如果是datetime类型的,格式是绝对没问题的,后面的时候是可以的保存下来的
    你应该用rs.getString()来读这个字段,应该没有问题啊
    我用了这么久都没问题,难道你那就出错?试试吧
      

  5.   

    可以暂时这么理解 插入是没有问题的!就是读出的时候 我不知道那一步导致了 读出的过程我的读出步骤
    连接数据库 直到 rs=dbconneciton.executeQuery();
     myclass.setXtime(rs.getDate("xtime"))这样写出入我的myclass//我的myclass中的setxtime方法
    setxtime(java.util.Date date){}
    然后再最后在jsp中 java.util.Date date=myclass.getxtime();取下这个数值 然后toString()也好怎么转型也好 出来的都是没有时间只有日期的。我想问究竟在那里导致了被砍掉一半的问题呢?
      

  6.   


    Date date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(rs.getString("xtime"));
    myclass.setXtime(date);
      

  7.   

    楼上的大哥 我刚才已经实验到myclass 里边了
    我发现 java.sql.Date tempdate =rs.getDate("xtime")//数据库里边的数据就是用mysql 的now()函数自动生成的没错了。
    java.util.Date tempdate2 =rs.getDate("xtime")//
    这时我 System.out.println(tempedate.toString()+tempdate2.toString());
    居然还是不行! 难道说 从数据库读出来那步开始就变少一半的?
      

  8.   

    呵呵,你这个方法是错误的
    首先getDate()返回的只能是java.sql.Date(),你使用util.Date()自然就会截掉我已经说了几遍了
    用getString()来取值晕。。
      

  9.   

    成功了~
    getString("xtime")返回成功了 这是什么道理?楼上的大哥给讲讲?我晕翻了~
    为什么啊!?数据明明是datetime 为什么要用string接受啊?
    还有 如果这样 那我出来的直接就是个string了 那要再进行 DateFromat转换不是又要倒回去了?!还有我插入时候就是用now()函数插入的 结果读的时候居然用string读? 诡异??
      

  10.   

    那要再进行 DateFromat转换不是又要倒回去了?!
    --------
    因为你要得到Date类么,所以必须再倒回去啊
    呵呵
      

  11.   

    我说的诡异是 mysql既然使用了 datetime格式 就应该使用getDate()来取 为什么要用getString()取个字符串 在解析回去成date 等到将来再用的时候 再解析回字符串呢?
    难道getDate()对于mysql就是只能取个一半吗?既然返回java.sql.date 那么解析它也不行吗?为什么连它也是一半呢?
    不管怎么说 --拜一下楼上的大哥~~~~谢谢了 T_T