本文介绍了JDBC 准备好的语句.setDate(....) 不节省时间,只是日期.. 我怎样才能节省时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下查询:

INSERT INTO users (user_id, date_created) VALUES (?,?)

我有以下准备好的声明

PreparedStatement insertUser = dbConnection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

insertUser.setInt(1, 7);
java.util.Date now = new java.util.Date(System.currentTimeMillis());
insertUser.setDate(2, new java.sql.Date((new Date(System.currentTimeMillis())).getTime()));
insertUser.executeUpdate();

如果我检查数据库,我发现它只插入了今天的日期而不是时间,所以它会是:2011-07-29 00:00:00

If I check the database, I find that it is inserting only today's date not the time though, so it would be : 2011-07-29 00:00:00

我应该在 setDate() 中放什么来获取时间?

What should I put in the setDate() to get the time as well?

推荐答案

你应该使用 和 setTimestamp 方法.

Instead of Date you should use a Timestamp and the setTimestamp method.

实际上你必须做这样的事情:

pratically you have to do something like that:

private static java.sql.Timestamp getCurrentTimeStamp() {
    java.util.Date today = new java.util.Date();
    return new java.sql.Timestamp(today.getTime());
}

....

preparedStatement.setTimestamp(4,getCurrentTimeStamp());

这篇关于JDBC 准备好的语句.setDate(....) 不节省时间,只是日期.. 我怎样才能节省时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 01:44