Rechercher : dans
Par :

[Java] Insertion d'une date dans SQL

Dernière réponse le 28 jun 2009 à 20:43:55 Mastaking, le 28 jun 2009 à 19:53:53 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [Java] Insertion d'une date dans SQL » dans :
Javascript - Date de dernière modification de la page VoirIl est possible, en langage Javascript, d'afficher la date de dernière modification de la page Web grâce à la propriété lastModified de l'objet document :
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...
Java: les opérateurs VoirQu'est-ce qu'un opérateur? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ... On distingue plusieurs types d'opérateurs : les opérateurs de calcul les...

1

 Mastaking, le 28 jun 2009 à 20:43:55

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.

Répondre à Mastaking