将日志信息记入数据库时增加了一个时间字段,发现存入数据库时只保留了日期,而没有时分秒信息。
我这边环境是(SRPINGMVC+Mybatis,mysql版本5.6.28以上),java层使用类型为java.util.Date,数据字段类型为date
参考了一些网上的说法,基本描述是说:
date:只有日期,没有时间,2016-09-21;
time:只有时间,没有日期,23:42:31;
datetime:日期时间都有,2016-09-21 23:42:31 。
timestamp:可以在进行Insert或者update的时候自动的为你插入时间,时间格式:2016-09-21 23:42:31
(参见:http://blog.****.net/Fasure_Smile/article/details/52619686)
应对方案基本如下:
一、改用java.sql.Timestamp
二、传日期形式的字符串,在存储过程接收到后在存储过程中使用to_date处理,对于输出的使用to_char处理
三、传TO_DATE字符串进存储过程
(参见:http://blog.****.net/lifuxiangcaohui/article/details/11529547)
我这边实测,实际上只需要mysql使用datetime类型即可,java层可以直接使用java.util.Date类型。即实际上原因是MySQL的date类型只足够保存日期,将字段拓展为datetime即可。