如何使用预准备语句设置当前日期和时间?

Par*_*nak 26 java datetime jdbc prepared-statement

我在数据库中有一个具有数据类型的列DATETIME.我想使用`PreparedStatement将此列值设置为当前日期和时间.我怎么做?

Bal*_*usC 47

用于PreparedStatement#setTimestamp()你传递java.sql.Timestamp构造的System#currentTimeMillis().

preparedStatement.setTimestamp(index, new Timestamp(System.currentTimeMillis()));
// ...
Run Code Online (Sandbox Code Playgroud)

另外,如果DB支持它,您还可以调用特定于DB的函数来使用当前时间戳设置它.例如,MySQL支持now()这一点.例如

String sql = "INSERT INTO user (email, creationdate) VALUES (?, now())";
Run Code Online (Sandbox Code Playgroud)

或者,如果数据库支持它,请将字段类型更改为自动设置插入/更新时间戳的字段类型,例如TIMESTAMP而不是DATETIME在MySQL中.