mysql下,保存时间时具体时间丢失,只保存了日期的问题

时间:2024-08-01 18:07:02

将日志信息记入数据库时增加了一个时间字段,发现存入数据库时只保留了日期,而没有时分秒信息。

我这边环境是(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即可。