web-dev-qa-db-fra.com

Comment insérer la date actuelle dans mysql db en utilisant java

Je souhaite insérer la date et l'heure actuelles dans des colonnes définies en tant que type datetime.

J'ai tapé le code suivant:

Java.sql.Date sqlDate = new Java.sql.Date(new Java.util.Date().getTime());
PrepStmt.setDate(1, sqlDate);

Lorsque je vérifie la base de données, je constate que la date est correctement insérée, mais que l'heure est: 00:00:00. Quelle est la solution?

14
Jury A

Puisque vous utilisez datetime comme type de colonne, vous devez utiliser Java.sql.Timestamp pour stocker votre date et PrepareStatement.setTimestamp pour l'insérer. 

Essayez d'utiliser ceci: -

Java.sql.Timestamp date = new Java.sql.Timestamp(new Java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);
22
Rohit Jain

Vous utilisez une mauvaise méthode. Vous pouvez utiliser PreparedStatement#setTimestamp(int parameterIndex, Timestamp x) à la place.

9
Bhesh Gurung

Ce que vous devez utiliser est la méthode setTimestamp (int parameterIndex, Timestamp x) au lieu de la méthode setDate ().

Une des façons de définir l’horodatage est la suivante:

Timestamp timestamp = new Timestamp(new Date().getTime());

Vous pouvez ensuite définir le paramètre comme suit:

PrepStmt.setTimestamp(1, timestamp);
3
Sujay

On dirait que tu as besoin 

Java.sql.Timestamp

Celui que vous utilisez avec Java.sql.Date concerne uniquement les dates et n’enregistre pas le temps. Sinon, vous pouvez utiliser Java.sql.Time si vous ne voulez que le temps.

3
ramsinb

Essayez avec setTimestamp as

PrepStmt.setTimestamp(1, sqlDate);
2
Jåcob
Java.sql.Timestamp date = new Java.sql.Timestamp(new Java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);

Je l'ai résolu en utilisant ceci ..

1
Mahak