我有一个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对我来说是新的
答案 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()));
....
希望对你有所帮助