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 11/10/2007, 10h58   #1
Membre du Club
 
Avatar de eracius
 
Inscription : décembre 2004
Messages : 130
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2004
Messages : 130
Points : 45
Points : 45
Par défaut insert into et datetime

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
eracius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 11h01   #2
Membre éclairé
 
Étudiant
Inscription : juin 2005
Messages : 289
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 289
Points : 371
Points : 371
Envoyer un message via MSN à DroP
Dans ta requete d'insertion met tu bien : avec les quotes ?
DroP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 11h07   #3
Membre du Club
 
Avatar de eracius
 
Inscription : décembre 2004
Messages : 130
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2004
Messages : 130
Points : 45
Points : 45
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.
eracius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 13h37   #4
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
essaye ça :

Code :
1
2
 
INSERT INTO TABLE(col_datetime) VALUES('1776-7-4 04:13:54');
chez moi ça fonctionne
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 13h57   #5
Membre du Club
 
Avatar de eracius
 
Inscription : décembre 2004
Messages : 130
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2004
Messages : 130
Points : 45
Points : 45
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');
ça fonctionne !

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
Soit donc l'erreur que j'ai depuis le début.
Je supprime le champs VARCHAR, ça refonctionne .... Oo

J'hésite à me pendre avec le câble usb de ma souris ...
eracius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 14h00   #6
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
salut,

petit conseil : evite d'utiliser comme nom de colonne et de table le mot date qui est un mot réservé
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 14h09   #7
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
Citation:
J'hésite à me pendre avec le câble usb de ma souris ...
t'as quoi comme souris ?

Bon sinon j'ai essayé ça et tout fonctionne :

Code :
1
2
3
4
5
6
7
8
9
10
 
CREATE TABLE `ZZTOP` (
  `DAT_DATETIME` datetime
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
INSERT INTO ZZTOP(DAT_DATETIME) VALUES('1700-7-4 04:13:54');
 
ALTER TABLE ZZTOP ADD COLUMN address VARCHAR(30);
 
INSERT INTO ZZTOP(DAT_DATETIME) VALUES('1900-7-4 04:13:54');
... courage
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 14h17   #8
Membre du Club
 
Avatar de eracius
 
Inscription : décembre 2004
Messages : 130
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2004
Messages : 130
Points : 45
Points : 45
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.
eracius 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 06h39.


 
 
 
 
Partenaires

Hébergement Web