IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

insert into et datetime


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé Avatar de eracius
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    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

  2. #2
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Par défaut
    Dans ta requete d'insertion met tu bien : avec les quotes ?

  3. #3
    Membre confirmé Avatar de eracius
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Par défaut
    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.

  4. #4
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO TABLE(col_datetime) VALUES('1776-7-4 04:13:54');
    chez moi ça fonctionne

  5. #5
    Membre confirmé Avatar de eracius
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ...

  6. #6
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    petit conseil : evite d'utiliser comme nom de colonne et de table le mot date qui est un mot réservé

  7. #7
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Membre confirmé Avatar de eracius
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/10/2006, 14h28
  2. probleme clé sequentiel avec insert into
    Par shake dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 15h54
  3. probleme d'INSERT INTO et JavaScript
    Par Matlight dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/03/2004, 15h36
  4. erreur SQL ...INSERT INTO
    Par naidinp dans le forum ASP
    Réponses: 20
    Dernier message: 18/09/2003, 11h38
  5. Insert Into + Date
    Par BoeufBrocoli dans le forum SQL
    Réponses: 10
    Dernier message: 13/08/2003, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo