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?
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.
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());
}