我使用的是sql server2008做的是一个实验课程预约系统,当学生提交预约请求,就用new Date()得到当前时间,然后存到数据库中的  预约时间statusTime字段中,字段类型为datetime因为new Date()为java.util.Date  所以存数据数据库要转换成java.sql.Date java.sql.Date d = new java.sql.Date(这里从请求对象中,拿到时间,然后getTime())这样存到数据库中。问题是,数据库中日期都有,但是时间都变成0了。没有时间。谢谢。

解决方案 »

  1.   

    DB里datetime和date类型是不一样的,在外面转型然后保存
      

  2.   

    在保存日期时,当把Hibernate 类型为date或者java.util.Date时, 插进数据库的数据有时就只有年月日 没有时分秒了只能保存年,月,日,不能保存时分秒的问题,下面是处理的方法:
    1.在hibernate时面是这样的:
      <hibernate-mapping package="com.lovo.po" >
        <class name="Po" table="t_po">
            <id name="id" type="integer">
                <column name="t_id" />
                <generator class="native" />
            </id>
            <property name="date" type="timestamp"><!--注意这里是timestamp-->
                <column name="t_date"/>
            </property>
        </class>
    </hibernate-mapping>
    2.在sqlserver里字段为datetime
    3.我们通过new Date()就可以保存(年月日,时分秒)了.---注意new Date()是java.util下面的.
      

  3.   


    我没有用到hibernate,这样如何解决?  
      

  4.   


    - -。你说说   怎么formate 
      

  5.   

     为了不给自己增加烦恼   统一改成String吧 
     我就算这样搞的 
    虽然是很菜的方法  但是有点实用
      

  6.   

    datetime 对应的是 java.sql.Timestamp
    对应的jdbc方法是 getTimestamp()和setTimestamp()
    timestamp可以用date.getTime()来做
      

  7.   

    java.util.Date utilDate = new Date();
    java.sql.Date sqlDate = new java.sql.Date(
    utilDate.getTime());这样再用jdbc插入是没有问题的,我试过。能保存到时间。
      

  8.   


    import java.sql.Timestamp;//时间类
    public class SysDate
            extends Timestamp
    {
        public SysDate()
        {
            super(0L);
        }
    }
    // 每次插入时 直接new SysDate()就行了
      

  9.   

    不用转sql.date 肯定是你哪里写错了
      

  10.   

    在数据库中用Long来保存时间,
    然后读出的时候转一下,这样保存的精确。
      

  11.   

     * To conform with the definition of SQL DATE, the 
     * millisecond values wrapped by a java.sql.Date instance 
     * must be 'normalized' by setting the 
     * hours, minutes, seconds, and milliseconds to zero
     in the particular
     * time zone with which the instance is associated.java.sql.Date 确实是没有时分秒的。楼上所说java.sql.Timestamp,比较靠普
      

  12.   

    String str =bean.getDate()+" "+bean.getTime();    
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");    
            Date date = sdf.parse(str);    
            java.sql.Timestamp sqlDate = new java.sql.Timestamp(date.getTime());    
            db.setDate1(sqlDate);