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