17

我想将当前日期和时间插入定义为日期时间类型的列中。

我输入了以下代码:

java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
PrepStmt.setDate(1, sqlDate);

当我检查数据库时,我发现日期插入正确,但时间是:00:00:00。解决方法是什么?

4

6 回答 6

28

由于您使用datetime的是列类型,因此您需要使用java.sql.Timestamp来存储您的日期并PrepareStatement.setTimestamp插入它。

尝试使用这个: -

java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);
于 2012-10-28T20:46:51.613 回答
9

你使用了错误的方法。你可以PreparedStatement#setTimestamp(int parameterIndex, Timestamp x)改用。

于 2012-10-28T20:43:20.150 回答
4

您需要使用的是setTimestamp(int parameterIndex,Timestamp x)方法而不是 setDate() 方法。

您可以设置时间戳的方法之一如下:

Timestamp timestamp = new Timestamp(new Date().getTime());

然后,您可以将参数设置为:

PrepStmt.setTimestamp(1, timestamp);
于 2012-10-28T20:44:19.297 回答
3

听起来你需要

java.sql.Timestamp

您使用java.sql.Date的只是处理日期而不记录时间。或者,java.sql.Time如果您只需要时间,您可以使用。

于 2012-10-28T20:44:57.293 回答
2

尝试使用 setTimestamp 作为

PrepStmt.setTimestamp(1, sqlDate);
于 2012-10-28T20:45:40.747 回答
2
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);

我用这个解决了它..

于 2015-12-15T12:34:23.743 回答