日期:2014-05-16  浏览次数:20482 次

mysql数据库中的date类型不显示分秒(原创)

遇到的问题:
mysql数据库设置时间为DATE类型,hibernate反向工程得到的实体类也是Date类型,但是,new Date()插进去的数据在数据库是:2011-09-29这种格式
我想要的是2011-09-29 11:27:26这种格式。

办法:
将数据字段改为TimeStamp类型,重新反向工程(影响到hbm.xml(TimeStamp)和java类(Date))
赋值仍然使用new Date() set进去,到数据库就是:2011-09-29 11:27:26

提取的时候,如果单纯使用<s:property value="transferDate"/>那么显示为:2011-09-29 11:27:26 000
如何去掉000呢?使用struts2的标签:<s:date name="transferDate" format="yyyy-MM-dd HH:mm:ss"/>

注意:
是<s:date name="transferDate" format="yyyy-MM-dd HH:mm:ss"/>如果写作:yyyy-MM-dd hh:mm:ss,那么下午一点就是01:00了

总结:
mysql数据库中不要设置布尔字段,否则你会很麻烦。应将其设置为varchar(1),使用hibernate的反向工程后是string类型的。用0、1标识。
mysql数据库中不要设置date字段,因为反向工程得到的实体类也是Date类型(length为19),new Date()(注:java.util.Date)进去的是2011-09-29
???? 如果想显示分秒,使用TimeStamp字段,反向工程得到的实体类也是Date类型(length为11) ,new Date()进去的是2011-09-29 11:27:26