Posez votre question Signaler

[Java] Insertion d'une date dans SQL [Résolu]

Mastaking 32Messages postés 10 mars 2007Date d'inscription 5 septembre 2011Dernière intervention - Dernière réponse le 28 juin 2009 à 20:43
Bonjour,
J'ai un probleme d'insertion de date dans une base de donnee de type mySql. Je m'explique:
j'ai dans ma base de donnee un champ Date de type DATETIME. jusque la pas de probleme. Seulement a travers un formulaire je permet a des utilisateurs de choisir une date avec yyyy-mm-dd hh:mm:ss jusque la encore pas de probleme, grace aux sysout je verifie que mon objet java.sql.date est parfaitement cree, mais lors de l'inserttion, j'obtient une date de la sorte : 1867-12-12 00:00:00
Les heures, minutes et secondes sont ignorees !!!!
Et la je vous avoue que je seche.... le raisonnement de mon code est le suivant :
Calendar cal = Calendar.getInstance();
cal.set( Calendar.YEAR, uneAnnee);
cal.set( Calendar.MONTH, unMois);
cal.set( Calendar.DATE, unJour);
cal.set( Calendar.HOUR_OF_DAY, uneHeure);
cal.set( Calendar.MINUTE, uneMinute);
cal.set( Calendar.SECOND, uneSeconde);
cal.set( Calendar.MILLISECOND, uneMilliseconde);
java.sql.Date uneDate= new java.sql.Date( cal.getTime().getTime());
//jusque la pas de probleme, un sysout me prouve que mon objet Date est bien cree par exemple :
System.out.println("Date : "+ uneDate);
System.out.println("Heure : "+ new java.sql.Time(uneDate.getTime()));
//Le probleme maintenant lors de l'insertion :
String sqlReq ="UPDATE table SET Date=? WHERE ID=?";
PreparedStatement ps = connection.getPreparedStatement(sqlReq);
try{
ps.setDate(1, uneDate);
ps.setInt(2, ID);
ps.executeUpdate();
}
catch(SQLException ex){
System.out.println("Erreur lors de l'execution de la requete");
ex.printStackTrace();
}

Et c'est ainsi que l'heure n'est pas pris en compte. J'ai essaye beaucoup de combinaison comme celle-ci :
ps.setDate(1, uneDate);
ps.setTime(1, new java.sql.Time(uneDate.getTime()));
ps.setInt(2, ID);

sans succes.
Donc si quelqu'un a deja ete confronte au probleme ou a une solution pour moi ce serait vraiment sympa.
merci d'avoir pris la peine de lire mon probleme.
Lire la suite 

[Java] Insertion d'une date dans SQL »

1 réponses
Réponse
+0
moins plus
Bonjour,

problème résolu grâce a Bennett a travers son article très pertinent :

http://www.thunderguy.com/semicolon/2003/08/14/java-sql-date-is-not-a-real-date/

En espérant que cela réglera le problème pour d'autre également.
Ajouter un commentaire
Ce document intitulé « [Java] Insertion d'une date dans SQL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?