|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 130 ![]() |
Bonjour,
J'espère ne pas poser une question bateau mais je n'arrive pas à formuler succintement mon problème sur google pour trouver une réponse. Lorsque je fais une requête "insert into" qui contient une date au format datetime écrit de cette façon : 0000-00-00 00:00 La requête plante à cause des ":", si je met un "+" à la place, ça marche. Mais je voudrais bien savoir pouquoi. Le contenu du message de l'erreur est le contenu de ma requête jusqu'aux premiers ":" J'utilise la fonction execute(String marequete) de l'objet Statement de la classe java.sql merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() |
Dans ta requete d'insertion met tu bien : avec les quotes ?
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 130 ![]() |
oui j'avais des quotes au début
Après au hasard de mes recherches, j'ai vu qu'on pouvait mettre des # mais ça ne change rien. J'ai aussi essayer de mettre CAST ('0000-00-00 00:00:00') AS DATETIME (et avec des #) mais le résultat est identique, la requête semble planter sur les ":" quoi que je mette. |
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
essaye ça :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 130 ![]() |
Ok donc là je nage en plein X-Files
Suite au post précédent, j'ai créé une table date avec juste un champs date (type datetime bien sur) et j'ai testé la requête toute bête : Code :
INSERT INTO `date` (`date`) VALUES('1776-7-4 04:13:54'); Je tente d'ajouter un champs quelconque à cette table (un VARCHAR) et je relance la MEME requête. Mon log me répond : Code :
SQLException : execute, INSERT INTO `logicielrbee`.`date` (`date`) VALUES('1776-7-4 04 Je supprime le champs VARCHAR, ça refonctionne .... Oo J'hésite à me pendre avec le câble usb de ma souris ... |
|
|
00
|
|
|
#6 |
![]() ![]() Michel Consultant informatique Inscription : mai 2005 Messages : 3 006 ![]() |
salut,
petit conseil : evite d'utiliser comme nom de colonne et de table le mot date qui est un mot réservé |
|
|
00
|
|
|
#7 | |||
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
Citation:
Bon sinon j'ai essayé ça et tout fonctionne : Code :
|
|||
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 130 ![]() |
Bon tout s'explique (comme quoi, X-Files c'est du pipo)
Sur mon essai d'une table "madate" avec juste un champ "madate" et un VARCHAR quelconque , j'ai oublié de mettre mon champs VARCHAR en NULL. Quand je fais ça, ma requête passe. (forcément ...) Je me suis donc dit que l'erreur de ma requête initiale ne devait pas être sur cette fameuse datetime. Et effectivement ... mes données étant dans des variables, je les ai affichées et me suis aperçu que l'une d'elle n'avait pas le bon type. Mais alors pourquoi le message d'erreur s'arrêtait sur le premier ":" de ma date en cas d'erreur de la requête ? C'est quand même bizarre et drôlement mal foutu parce que forcément, c'est là que j'ai cherché le problème ... Le mec qui a développé les messages d'erreur SQL devait être bourré ou avec un sens de l'humour spécial.. Merci à tous ceux qui m'ont répondu A la prochaine. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com