Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/07/2006, 10h27   #1
Membre du Club
 
Avatar de ultracoxy
 
Étudiant
Inscription : mai 2006
Messages : 116
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 116
Points : 50
Points : 50
Par défaut [MySQL 5 + Java] Problème avec un champ TIME

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 :
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 :


Citation:
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 ?
ultracoxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2006, 09h25   #2
Membre du Club
 
Inscription : septembre 2003
Messages : 142
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 142
Points : 41
Points : 41
Envoyer un message via MSN à sekiryou
Je connais pas trop, mais est-ce que tu as regardé dans la doc java pour les java.sql.Date et java.sql.Time? Presque tout est désuet dans ces classes. (dans java.util.Date aussi d'ailleurs).

"1 janv. 1970" c'est ce qu'ils appellent le "zero epoch" parcequ'il compte en millisecondes à partir de cette date. Donc quand la valeur est égale à 0 milliseconde, lui l'interprète comme étant "1 janv. 1970". Ça veut dire qu'à quelque part, ton temps devient égale à zéro pour quelque raison que ce soit.

Citation:
Envoyé par Javadoc
Time
public Time(long time)Constructs a Time object using a milliseconds time value.

Parameters:
time - milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds before January 1, 1970, 00:00:00 GMT
Je sais pas si ça t'aide... mais bon, je suis prêt à t'aider plus si tu as besoin.
sekiryou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h42.


 
 
 
 
Partenaires

Hébergement Web