1

我有一个 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对我来说是新的

4

3 回答 3

4

我建议使用 MySQL 日期时间字段类型,然后使用该函数NOW()向其中插入一个值。

您可以像这样插入日期:

INSERT INTO `table-name`(`DATETIME-FIELD-NAME`) VALUES(NOW());
于 2012-05-07T05:59:19.217 回答
1

你可能需要java.sql.Timestamp,更好的是你可以在数据库端处理这个,只需设置默认值

create table test (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
于 2012-05-07T05:57:59.410 回答
0
PreparedStatement ps = con.prepareStatement(
                "insert into UserActivity values (?, ?, ?, ?, ?, ?)");
....
ps.setDate(5, new Timestamp(System.currentTimeMillis()));
....

希望对你有帮助

于 2012-05-07T06:04:58.183 回答