mysql datetime类型字段,写入数据后时分秒丢失

Scroll Down

问题现象

使用JDBC往MySQL写入数据,写入后,时分秒丢失,只有日期。
java代码:

ps.setDate(colIndex, new Date(new java.util.Date().getTime()));

数据库数据:

2021-03-22 00:00:00

解决方法

使用Timestamp写入

ps.setTimestamp(colIndex, new Timestamp(new java.util.Date().getTime()));

原因

JDBC的setDate()只有年月日,不带时分秒,写入数据库之后时分秒全为0。而setTimestamp()能携带时分秒信息,所以要用setTimestamp()写入。