Bonjour,
Votre code a quelques erreurs.
Tout d'abord, le format que vous indiquez n'affecte pas effect_from . Le format ne fait pas partie de la date elle-même. Un formateur permet de passer d'une date à une représentation textuelle et vice versa, mais la date elle-même est inchangée. Dans :
"insert into testdate values('"+effect_from+"')"
effect_from est une date, le format indiqué plus tôt par SimpleDateFormat n'a pas d'effet sur elle. Quand vous l'ajoutez au texte, Java appelle sa méthode toString dont le format par défaut est année-mois-jour. Si vous voulez utiliser un format précis, il faut faire
"insert into testdate values('" + formatter.format(effect_from) +"')"
Mais l'erreur la plus grave, c'est celle que vous a indiqué jeffray03. Il ne faut jamais construire une requête SQL en y mettant directement une variable. Si cette variable contient des caractères spéciaux du SQL, vous pouvez avoir des bogues. Vous vous exposez également à des attaques par injection SQL (les pirates adorent). La solution, c'est d'utiliser la classe PreparedStatement, qui gère les caractères spéciaux. De plus, PreparedStatement gère lui-même les formats de date : vous vous êtes fatigué pour rien!
Partager