我想将当前日期和时间插入定义为日期时间类型的列中。如何使用java将当前日期插入到mysql db
我输入以下代码:
java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
PrepStmt.setDate(1, sqlDate);
当我检查数据库,我发现日期正确插入,但时间是:00:00:00。什么是修复?
我想将当前日期和时间插入定义为日期时间类型的列中。如何使用java将当前日期插入到mysql db
我输入以下代码:
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)
。
+1 - 我认为你是禁食来检测问题:) – Sujay
您需要使用的是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);
我解决了它使用这个..
什么是你的MySQL数据库中的列的数据类型? – doublesharp
@doublesharp。他写在那里。它的日期。 –