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 :

changer l'ordre des dates dans table


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 6
    Points
    6
    Par défaut changer l'ordre des dates dans table
    Bonjour,

    Je cherche un moyen de modifier un champ qui s'intitule 'date' mais qui est un varchar (...). Ce champs contient des dates au format jour-mois-année comme suit : 05-09-2004. Et je voudrais en faire des dates au format année-mois-jour : 2004-09-05
    J'ai essayé ça : UPDATE matable SET date ='2004-09-%' WHERE date LIKE '%-09-2004' mais ça ne marche pas : il me mets littéralement dans le champs date la chose suivante : '2004-09-%' !! Il me met un % ! Y a pas un système de variable quelque part ?

    Meric bcp pour votre aide,
    lordyan

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 87
    Points
    87
    Par défaut
    Essaie ça pour voir ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE matable SET date=CONCAT_WS(  "-", substring( date, 9, 2  ) , substring( date, 6, 2  ) , substring( date, 1, 4  )  )  WHERE date = CONCAT_WS(  "-", substring( date, 1, 4  ) , substring( date, 6, 2  ) , substring( date, 9, 2  )  )

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Merci, j'ai pas l'impression que ça marche. Mais c'est quoi le principe ? Je comprend pas comment ça doit fonctionner

    Merci en tous les cas pour cette aide précieuse, car au moins ça me donne de quoi chercher

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 87
    Points
    87
    Par défaut
    CONCAT_WS concatène des chaînes avec un séparateur défini en 1er argument (ici "-")...SUBSTRING récupère des portions de chaînes.
    Le principe est de mettre à jour (UPDATE) la date avec un agencement défini des sous-chaînes (JJ-MM-AAAA) où (WHERE) la date est égale à l'agencement initial (AAAA-MM-JJ)...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 87
    Points
    87
    Par défaut
    Chez moi ça marche...as-tu mis le bon nom de table et de champ?

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    je vais réessayer ...

  7. #7
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Je fais ma requête SQL dans phpmyadmin :
    UPDATE matable SET date=CONCAT_WS( "-", substring( date, 9, 2 ) , substring( date, 6, 2 ) , substring( date, 1, 4 ) ) WHERE date = CONCAT_WS( "-", substring( date, 1, 4 ) , substring( date, 6, 2 ) , substring( date, 9, 2 ) ) AND verif ='297912606' (ça c'est un identifiant unique pour fair e le test sur 1 champ uniquement)

    Résultat : Nombre d'enregistrements affectés : 0

    Pourtant le champ date contient bien : 05-09-2004

    Le fait que le champs nommé date soit un varchar, ça peut peut-être poser problème, non ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 87
    Points
    87
    Par défaut
    Ah ben vi..... ...j'ai inversé l'ordre persuadée que tu voulais JJ-MM-AAAA et non l'inverse...

    Donc essaies voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE matable SET date=CONCAT_WS(  "-", substring( date, 1, 4  ) , substring( date, 6, 2  ) , substring( date, 9, 2  )  )  WHERE date = CONCAT_WS(  "-", substring( date, 9, 2  ) , substring( date, 6, 2  ) , substring( date, 1, 4  )  )

  9. #9
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    J'ai fais une copie de ma B2d pour faire un test sans autre argument que ceux que tu me donnes (en remplacant le nom de la table, of course) et j'ai toujours et et encore :
    Nombre d'enregistrements affectés : 0


    Je me demande si c'est pas le WHERE qui pose problème. Si j'ai bien compris, dans le WHERE, tu fais une séléction sur les dates qui sont sous la forme DD-MM-YYYY. Correct ?

  10. #10
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Je crois que comme ça c'est correct :
    UPDATE matable SET date = CONCAT_WS( "-", substring( date, 7, 4 ) , substring( date, 4, 2 ) , substring( date, 1, 2 ) ) WHERE date = CONCAT_WS( "-", substring( date, 1, 2 ) , substring( date, 4, 2 ) , substring( date, 7, 4 ) )

    Merci bcp en tous les cas, je n'aurais jamais rien réussi seul !

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 87
    Points
    87
    Par défaut
    UPDATE matable SET date = CONCAT_WS( "-", substring( date, 7, 4 ) , substring( date, 4, 2 ) , substring( date, 1, 2 ) ) WHERE date = CONCAT_WS( "-", substring( date, 1, 2 ) , substring( date, 4, 2 ) , substring( date, 7, 4 ) )
    OUF ! Oui c'est ça !

    Pense à mettre "Résolu"

  12. #12
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    trop tard ! ça a déjà été fait! trop rapide le modo !
    Merci modo, merci Anne1969, merci le forum

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

Discussions similaires

  1. Changer le format des dates dans une requête SQL
    Par Tazze-99 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/07/2012, 15h09
  2. Changer l'ordre des données dans une PIE
    Par Chnoucky dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/03/2010, 12h07
  3. Changer "l'ordre" des composants dans une fiche
    Par sic_88 dans le forum Débuter
    Réponses: 2
    Dernier message: 23/06/2009, 13h18
  4. [Débutant]Ordre des champs dans une table
    Par goony dans le forum Débuter
    Réponses: 4
    Dernier message: 16/02/2006, 12h05
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

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