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

时间:2010-09-09 14:36:51

标签: java mysql datetime jdbc prepared-statement

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

我在我的mysql数据库上使用了一个datetime字段(因为它是appears datetime is more common than 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();

3 个答案:

答案 0 :(得分:28)

使用java.sql.TimestampsetTimestamp(int, Timestamp)java.sql.Date仅限日期,无论其存储的列类型如何。

答案 1 :(得分:4)

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

ps.setDate();

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

尝试

ps.setTimetamp();

答案 2 :(得分:-4)

您可以使用:

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