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.
Configuration: Windows Vista
Firefox 3.0.11