2012-10-28 48 views
12

我想将当前日期和时间插入定义为日期时间类型的列中。如何使用java将当前日期插入到mysql db

我输入以下代码:

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

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

+1

什么是你的MySQL数据库中的列的数据类型? – doublesharp

+1

@doublesharp。他写在那里。它的日期。 –

回答

18

由于您使用datetime作为字段类型,你需要使用java.sql.Timestamp来存储您的日期,并PrepareStatement.setTimestamp插入它。

尝试使用这样的: -

java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime()); 
PrepStmt.setTimestamp(1, date); 
2

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

,您所设置的时间戳将是如下的方式:

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

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

PrepStmt.setTimestamp(1, timestamp); 
2

听起来像是你需要

java.sql.Timestamp 

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

2

试着用的setTimestamp为

PrepStmt.setTimestamp(1, sqlDate); 
1
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime()); 
PrepStmt.setTimestamp(1, date); 

我解决了它使用这个..