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

Requêtes MySQL Discussion :

LOAD DATA INFILE et formatage date


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 12
    Par défaut LOAD DATA INFILE et formatage date
    Bonjour à toutes et tous,

    Voilà, je lis des données à partir d'un fichier .csv et je les inclue dans un table. Mon problème est que dans le fichier, le format de date est dd/mm/yyyy et je veux donc le convertir en yyyy-mm-dd pour pouvoir l'insérer dans la table MySQL. Pour le moment ca ne marche pas...

    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    LOAD  DATA  INFILE  'Classeur1.csv' INTO  TABLE mydb.prestations 
    FIELDS  TERMINATED  BY  ';' 
    LINES  TERMINATED  BY  '\n' 
    IGNORE 1 LINES
    (createur,
    @date,
    idPrestation,
    description)
    SET dateCreation = DATE_FORMAT(STR_TO_DATE(@date,'%d/%m/%Y'),'%Y-%m-%d');
    Voici l'erreur remontée :

    MySQL a répondu:


    #1064 - Erreur de syntaxe près de '@date , idPrestation, description ) SET dateCreation = DATE_FORM' à la ligne 1


    J'avoue avoir testé pas mal de combinaisons mais sans succès, je demande donc votre aide...

    Merci par avance !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par lafouine1986 Voir le message
    #1064 - Erreur de syntaxe près de '@date , idPrestation, description ) SET dateCreation = DATE_FORM' à la ligne 1
    Ça signifie que l'erreur se situe juste avant @date.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 12
    Par défaut
    Oui, merci pour cette précision, cependant et pour être honnête, cela ne m'avance pas énormément. Je me doute qu'il y a une erreur sur la ligne, et qu'il est probable qu'elle se situe avant @date, mais quelle est-elle, je me le demande bien...

    Si vous avez des idées, je suis preneur !

    Merci par avance!

  4. #4
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Et, bien sûr, tu ne peux pas modifier le format dans la source csv en amont ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 12
    Par défaut
    bonjouer,

    merci de ton aide !
    Alors il est possible de modifier le format de la date dans le fichier, le problème c'est que cette opération doit être faite par un opérateur, et qui dit opérateur en plus, dit erreurs potentielles ou oubli, donc je souhaitais au maximum automatiser le processus.

    Si je n'arrive pas faire ce que je veux, ce sera la solution de secours...

    Ce qui me dérange en fait c'est que c'est une erreur de syntaxe, donc ca semble possible de le faire, la commande existe !

    Merci par avance pour votre aide !

  6. #6
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Je trouve assez maladroit d'utiliser un mot-clef, date, pour un nom de colonne.
    Il faudrait le changer pour un mot équivalent comme jour. Perso, face à un mot clef j'opte pour son équivalent en espéranto (ici dato).
    L'@ dans la liste des colonnes n'est-il pas à l'origine du problème ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

Discussions similaires

  1. LOAD DATA INFILE et date au format jj/mm/annee
    Par JoN28fr dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 14/03/2008, 19h30
  2. load data infile et format date
    Par Mathieu72 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/01/2007, 12h59
  3. probleme avec "LOAD DATA INFILE" et les b
    Par Koo dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/07/2004, 09h37
  4. Problème avec LOAD DATA INFILE
    Par ka0z dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/06/2004, 14h59
  5. petit soucis lors d'un LOAD DATA INFILE
    Par Jovial dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 04/06/2004, 11h58

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