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


问题内容

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

我使用我的mysql数据库中的日期时间字段(因为它似乎是日期时间是比较常见的比时间戳)。我设置日期的代码如下所示:

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仅限日期,无论存储在哪个列中。