Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1345 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL Server et Java] Problème avec les dates

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL Server et Java] Problème avec les dates

n°1735299
Sbartacus
Posté le 21-05-2008 à 16:28:02  profilanswer
 

Bonjour,
 
J'ai un soucis avec les dates sur SQL Server.
Je fais une appli en Java qui insère des données.
Lorsque j'insère la date en Java, je fais  
 

Code :
  1. INSERT INTO client VALUES("20010101" );


 
Cela n'insère pas la date, mais ça m'affiche cette erreur :
 
[I]Une erreur de dépassement arithmétique s'est produite lors de la conversion de expression en type de données datetime.[/I]
 
Lorsqu'en Java j'essaie :
 

Code :
  1. INSERT INTO client VALUES("0" );


 
Cela insère la date "1900-01-01".
 
 
Or lorsque je lance SQL Server, je fais une requête, et j'insère 20010101, cela se fait correctement.  
Comment cela se fait-il ?
Je me souviens avoir fait un  
 

Code :
  1. SET DATEFORMAT DMY


Mais bon, cela n'affecte que le code Java, et pas le code sous SQL Server.
 
Merci.

mood
Publicité
Posté le 21-05-2008 à 16:28:02  profilanswer
 

n°1735321
casimimir
Posté le 21-05-2008 à 17:02:23  profilanswer
 

il faut toujours mieux ne pas passer une date en string sans la fonction adéquate, sinon tu dépends de la paramétrisation du serveur, je connais pas sql serveur mais en oracle tu as un to_date('2008-01-01','YYYY-MM-DD') ou tu passes un masque.
 
(mais la vraie bonne méthode serait d'utiliser un prepared statement et lui passer un sql.date (si je me souvient bien))

n°1735348
Sbartacus
Posté le 21-05-2008 à 17:58:35  profilanswer
 

Merci pour le conseil.
Par contre je n'ai encore jamais utilisé de PreparedStatement. Je vais me renseigner dessus.  
Pour la date, est-il possible de convertir une date en nombre de jours ?
Sur SQL Server, je n'arrive vraiment pas à changer le format à l'aide des fonctions existantes (le Set Dataformat est d'ailleurs la cause de mes soucis :-( )
 
je m'explique : Java, quand il donne le nombre de jours d'une date, le fait à compter de 1970.
Or, sur SQL Server c'est à partir de 1900. Je voudrais donc savoir s'il existe une fonction en Java pour convertir une date en nombre de jour depuis le 1/1/1900.
Merci.


Message édité par Sbartacus le 21-05-2008 à 17:59:15
n°1735360
Sbartacus
Posté le 21-05-2008 à 18:40:14  profilanswer
 

Problème résolu : en Java, au lieu de faire  
 
 

Code :
  1. INSERT INTO client VALUES("20010101" );


 
Il fallait faire  

Code :
  1. INSERT INTO client VALUES("'20010101'" );


 
Voilà l'art de perdre 3 heures à cause de simples guillemets. :(
 
Par contre si vous pouviez m'en dire plus sur l'utilité d'un PreparedStatement, ça m'intéresse. ^^[cpp]


Message édité par Sbartacus le 21-05-2008 à 18:41:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL Server et Java] Problème avec les dates

 

Sujets relatifs
problème balise input type text -->type FileProblème création module importation
[CuteFlow] Problème d'installationProbleme de transmission d'information
problème WSDL/SOAP[VB.NET]Problème de connexion telnet
Animation Gif JAVA - pb d'affichageProbleme récupération valeur d'un select[Résolu]
requête SQL (C++ builder 2007)mysql command line client -- probleme d'accent
Plus de sujets relatifs à : [SQL Server et Java] Problème avec les dates


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR