我想保存当前时间,将其作为对象的一个属性值,用的new Date(),保存到数据库后,数据成了“2010-04-17 00:00:00”,没有保存小时,分钟,秒。
 将其取出,取出的时间也就成了“2010-04-17 ”这种格式。我希望保相存时间的同时也要保存小时之类的,取出的时间也能含有小时这些,要怎么做呢?要在保存时间的时候,做什么格式转换吗?以前都用的varchar在数据库中保存的,这次用datetime就出现了这个问题,求助

解决方案 »

  1.   

    有date的子类timestamp。就是实际存的时候new timestamp().就是通常所说的时间戳。取的时候可不要statement.getDate哦。
      

  2.   


    你的意思是在数据库中用timestamp类型存储,在保存时用new timestamp()。那取的时候不用statement.getDate,是用getLong吗?然后将取出的值再转换?
      

  3.   

    simpdateformate sf=new simpdateformate("yyyy-MM-dd");
    string sd=sf.format(new Data());//放数据库读取的时间
    //simpdateformate 好像有拼写错误在ide里敲一下就可以了,思路是这样的
      

  4.   

    这么巧,我也遇到这问题了,不过解决了
    你可以这样做,//在java中把字段设为String类型
          SimpleDateFormat hm =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
               String time=hm.Fomrmat(new Date());
    //数据库中字段设为DateTime类型
    //从数据库读取时,
       rs.getString("字段名")
      

  5.   

    4楼的方法,也是常用的方法
    在Mysql中,我们一般把时间型设置为timestamp。因为你给时间字段插入null 或没赋值,系统会自动赋当前的日期和时间,然后通过
    Timestamp ts=rs.getTimestamp("time");//time是时间字段
    long lms=ts.getTime();
    Date date=new Date(lms);//得到日期
    Time time=new Time(lms);//得到时间
      

  6.   

    你可以这样
      java.sql.Date datatime=new Date(new java.util.Date().getTime());  
      这样获取到的时间直接就是date类型的还不用转换的然后时分秒都有的
      
      

  7.   

    new Date 直接 就有 小时 分 秒 了  不理解,不解释
      

  8.   

    保存的时候用new Date(System.currentTimeMillis())试试,不敢确定
      

  9.   

    强烈建议把datatime转换成String类型存储。
      

  10.   

    谢谢各位,弄了几天最终还是将其通过varchar类型存储的,其他方法不也错,不过还是觉得这种通过这种方法要简单一点。。
      

  11.   

    二楼正解,直接保存成
    pstmt.setTimestamp(3,new Timestamp(System.currentTimeMillis()))取代setDate就可以直接保存一个具体的时间到数据库了。
      

  12.   

    这个说的对。不过ORM的日期字段要设置成String好使