日期:2014-05-19  浏览次数:20667 次

往数据库里存入时间问题
我使用的是sql server2008

做的是一个实验课程预约系统,当学生提交预约请求,就用new Date()得到当前时间,然后存到数据库中的  预约时间statusTime字段中,字段类型为datetime

因为new Date()为java.util.Date  所以存数据数据库要转换成java.sql.Date 

java.sql.Date d = new java.sql.Date(这里从请求对象中,拿到时间,然后getTime())

这样存到数据库中。

问题是,数据库中日期都有,但是时间都变成0了。没有时间。

谢谢。

------解决方案--------------------
在保存日期时,当把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下面的.
------解决方案--------------------
datetime 对应的是 java.sql.Timestamp
对应的jdbc方法是 getTimestamp()和setTimestamp()
timestamp可以用date.getTime()来做