如何使用预准备语句设置当前日期和时间?
我在数据库中有一个数据类型为DATETIME
的列。 我想使用`PreparedStatement将此列值设置为当前日期和时间。 我怎么做?
使用PreparedStatement#setTimestamp()
其中传递一个由System#currentTimeMillis()
构造的java.sql.Timestamp
。
preparedStatement.setTimestamp(index, new Timestamp(System.currentTimeMillis())); // ...
另外,如果数据库支持它,您还可以调用特定于数据库的函数来设置当前时间戳。 例如,MySQL支持now()
。 例如
String sql = "INSERT INTO user (email, creationdate) VALUES (?, now())";
或者,如果数据库支持它,请将字段类型更改为自动设置插入/更新时间戳的字段类型,例如MySQL中的TIMESTAMP
而不是DATETIME
。
conn = getConnection(); String query = "insert into your_table(id, date_column) values(?, ?)"; pstmt = conn.prepareStatement(query); pstmt.setString(1, "0001"); java.sql.Date date = getCurrentDatetime(); pstmt.setDate(2, date);
函数getCurrentDatetime()执行以下操作:
public java.sql.Date getCurrentDatetime() { java.util.Date today = new java.util.Date(); return new java.sql.Date(today.getTime()); }