web-dev-qa-db-fra.com

Comment définir la date et l'heure actuelles à l'aide d'une instruction préparée?

J'ai une colonne dans la base de données ayant le type de données DATETIME. Je veux définir la valeur de cette colonne sur la date et l'heure actuelles en utilisant `PreparedStatement. Comment je fais ça?

23
Param-Ganak

Utilisez PreparedStatement#setTimestamp() dans lequel vous passez un Java.sql.Timestamp qui est construit avec System#currentTimeMillis() .

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

Alternativement, si la base de données le prend en charge, vous pouvez également appeler une fonction spécifique à la base de données pour la définir avec l'horodatage actuel. Par exemple, MySQL supporte now() pour cela. Par exemple.

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

Ou, si la base de données le prend en charge, remplacez le type de champ par un type définissant automatiquement l'horodatage d'insertion/mise à jour, tel que TIMESTAMP au lieu de DATETIME dans 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);

Où la fonction getCurrentDatetime () effectue les opérations suivantes:

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