如何在mysql中存储当前日期和时间

时间:2012-05-07 05:55:08

标签: java mysql database

我有一个java程序,我使用java.util.Date来获取当前的日期和时间,我在mysql中有一个表,其中有一个字段为

ActivityTime date; // date is the type

我用预备语句插入表中。

java.util.Date today = new java.util.Date();
long t = today.getTime();

PreparedStatement ps = con.prepareStatement(
                "insert into UserActivity values (?, ?, ?, ?, ?, ?)");
....
ps.setDate(5, new java.sql.Date(t));
....

日期在输出中显示正确,但时间是00:00:00我不知道为什么会发生这种情况? 请帮我抽时间。 当我打印java.util.date时显示正确的时间。问题是如何将时间插入到sql表中。

PS:可能这很简单,但java api对我来说是新的

3 个答案:

答案 0 :(得分:4)

我建议使用MySQL datetime字段类型,然后使用函数NOW()为其插入一个值。

您可以像这样插入日期:

INSERT INTO `table-name`(`DATETIME-FIELD-NAME`) VALUES(NOW());

答案 1 :(得分:1)

您可能需要java.sql.Timestamp,更好的是您可以在数据库端处理此问题,只需设置默认值

create table test (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

答案 2 :(得分:0)

PreparedStatement ps = con.prepareStatement(
                "insert into UserActivity values (?, ?, ?, ?, ?, ?)");
....
ps.setDate(5, new Timestamp(System.currentTimeMillis()));
....

希望对你有所帮助