Bonjour,

Voilà un bon moment que je m'évertue à essayer d'insérer un champ date et un champ heure dans une BDD MySQL 5.0. Je vous explique le problème en détails :

Voilà ce que je fais :

- J'ai une table comportant : un champ Rdate de type DATE et un champ Rtime de type TIME.

Dans mon programme je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
java.sql.Date maDate = rep.getDate(); // me renvoie 2006-07-04 
java.sql.Time monHeure = rep.getTime() // me renvoie 15:41:04 
etc. .......... 
pstmt.setDate(2, maDate); 
pstmt.setTime(3, monHeure); 
etc. .......... 
pstmt.execute();
L'ennui c'est que, si l'insertion en BDD est effectuée, les champs récupérés sont ceux-ci :

----------------------
| Rdate | 4 juil. 2006 | --> Ca c'est parfait
----------------------
| Rtime | 1 janv. 1970 | --> La je suis contrariée
-----------------------

D'après le manuel de référence de MySQL :


Attention à certains pièges concernant les spécifications de dates :

La syntaxe à délimiteur libre peut être une source de problème. Par exemple, une valeur telle que ‘10:11:12’ ressemble à une heure, à cause du délimiteur `‘:’', mais avec une colonne de date, elle sera interprétée comme la date ‘2010-11-12’. La valeur ‘10:45:15’ sera convertie en ‘0000-00-00’ car ‘45’ n'est pas un mois valide.
Mon problème d'heure qui se transforme en date quand elle est insérée en BDD vient il de là ?

Comment puis-je faire en sorte que ma BDD MySQL prenne une heure dans le champ Rtime de type TIME ?