web-dev-qa-db-de.com

Wie kann man das aktuelle Datum und die aktuelle Uhrzeit mithilfe der vorbereiteten Anweisung einstellen?

Ich habe eine Spalte in der Datenbank mit dem Datentyp DATETIME. Ich möchte diesen Spaltenwert mit `PreparedStatement auf das aktuelle Datum und die aktuelle Uhrzeit setzen. Wie mache ich das?

23
Param-Ganak

Verwenden Sie PreparedStatement#setTimestamp() , wobei Sie einen Java.sql.Timestamp übergeben, der mit System#currentTimeMillis() erstellt wurde.

preparedStatement.setTimestamp(index, new Timestamp(System.currentTimeMillis()));
// ...

Wenn der DB dies unterstützt, können Sie alternativ auch eine DB-spezifische Funktion aufrufen, um sie mit dem aktuellen Zeitstempel festzulegen. Beispielsweise unterstützt MySQL hierfür now(). Z.B.

String sql = "INSERT INTO user (email, creationdate) VALUES (?, now())";

Wenn der DB dies unterstützt, ändern Sie den Feldtyp in einen Typ, der den Einfügungs-/Aktualisierungszeitstempel automatisch festlegt, z. B. TIMESTAMP anstelle von DATETIME in MySQL.

45
BalusC
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);

Wo die Funktion getCurrentDatetime () folgendes tut:

public Java.sql.Date getCurrentDatetime() {
    Java.util.Date today = new Java.util.Date();
    return new Java.sql.Date(today.getTime());
}
1
kinkee