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

2022-09-01 23:24:45

我试图使用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();

答案 1

使用和 。 是仅日期的,无论它存储在何处的列的类型。java.sql.TimestampsetTimestamp(int, Timestamp)java.sql.Date


答案 2

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

ps.setDate();

需要列类型 Date。所以它正在规范化它,删除时间。

尝试

ps.setTimetamp();