如何使用java设置完整的日期和时间sql,而不仅仅是日期?

我正在尝试使用java在我的数据库中设置时间戳,但是在我的表中我得到的是日期,没有时间(即,看起来像“2010-09-09 00:00:00”)。

我在我的mysql数据库上使用datetime字段(因为看起来 datetime比timestamp更常见 )。 我设置日期的代码如下所示:

PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)") java.util.Date today = new java.util.Date(); java.sql.Date timestamp = new java.sql.Date(today.getTime()); ps.setDate(1, timestamp); ps.executeUpdate(); 

如何设置包含时间的日期?

编辑:我按照下面的说法更改了代码,并设置了日期和时间。

 PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)") java.util.Date today = new java.util.Date(); java.sql.Timestamp timestamp = new java.sql.Timestamp(today.getTime()); ps.setTimestamp(1, timestamp); ps.executeUpdate(); 

使用java.sql.TimestampsetTimestamp(int, Timestamp)java.sql.Date只是日期,无论它存储在哪个列的类型。

不完全确定你需要使用什么,但是

 ps.setDate(); 

期望列类型为Date。 所以它正常化它,消除时间。

尝试

 ps.setTimetamp(); 

你可以使用:

 private static String getTimeStamp() { SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return f.format(new Date()); }