我想将当前日期和时间插入定义为日期时间类型的列中。
我输入了以下代码:
java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
PrepStmt.setDate(1, sqlDate);
当我检查数据库时,我发现日期插入正确,但时间是:00:00:00。解决方法是什么?
由于您使用datetime
的是列类型,因此您需要使用java.sql.Timestamp
来存储您的日期并PrepareStatement.setTimestamp
插入它。
尝试使用这个: -
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);
你使用了错误的方法。你可以PreparedStatement#setTimestamp(int parameterIndex,
Timestamp x)
改用。
您需要使用的是setTimestamp(int parameterIndex,Timestamp x)方法而不是 setDate() 方法。
您可以设置时间戳的方法之一如下:
Timestamp timestamp = new Timestamp(new Date().getTime());
然后,您可以将参数设置为:
PrepStmt.setTimestamp(1, timestamp);
听起来你需要
java.sql.Timestamp
您使用java.sql.Date
的只是处理日期而不记录时间。或者,java.sql.Time
如果您只需要时间,您可以使用。
尝试使用 setTimestamp 作为
PrepStmt.setTimestamp(1, sqlDate);
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);
我用这个解决了它..