[Java] Insertion d'une date dans SQL

Résolu/Fermé
Mastaking Messages postés 35 Date d'inscription samedi 10 mars 2007 Statut Membre Dernière intervention 5 septembre 2011 - 28 juin 2009 à 19:53
Mastaking Messages postés 35 Date d'inscription samedi 10 mars 2007 Statut Membre Dernière intervention 5 septembre 2011 - 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.
A voir également:

1 réponse

Mastaking Messages postés 35 Date d'inscription samedi 10 mars 2007 Statut Membre Dernière intervention 5 septembre 2011 14
28 juin 2009 à 20:43
Bonjour,

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

https://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.
0