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

Access Discussion :

format des dates d'une table déjà existante


Sujet :

Access

  1. #1
    Membre éclairé Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Par défaut format des dates d'une table déjà existante
    Bonjour,

    Je viens de récupérer une base de données contenant plus de 13000 entrées. Le problème, c'est que les dates renseignées dans cette table sont de type texte.
    Vous comprendrez aisément que lorsque je veux comparer une date avec une requête SQL c'est pas terrible terrible (surtout avec l'opérateur between)
    Je cherche donc une procédure pour soit :
    - changer le type de mon champ et formaliser les données
    - effectuer ma requête de comparaison de date sur un champ de type texte

    Merci beaucoup d'avance

  2. #2
    Membre éclairé Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Par défaut
    Je viens de tenter de forcer la conversion mais ca me fait perdre au moins 1500 enregistrements donc cette solution n'est pas possible

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    tu ajoutes une colonne madate tu fais tourner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE matable SET matable.madate = DateSerial(Right([date],4),Mid([date],3,2),Left([date],2));
    pour mid peut être remplacer 3 par 4 si /

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 148
    Par défaut
    Bonjour,

    Si tu as la possibilité de changer le type fait-le.

    Créer un champ date supplémentaire.

    Puis dans une requête update :

    Madate : cdate(mon_ancienne_date)
    Update : NouveauChampDate

    Cordialement,

  5. #5
    Membre éclairé Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Par défaut
    Je vais tester ca de suite. Merci pour l'info
    Je vous tiens au courant

  6. #6
    Membre éclairé Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Par défaut
    Bouh... Optimisme refroidi !
    C'est vraiment carrément le bordel (et je pèse mes mots)
    Ca risque d'être quasiment impossible car la table contient une fois une année sur 2 chiffres, une fois sur 4... Que du bonheur !
    Si je tenais celui qui avait fait cette base....

    Une idée malgré tout ?

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 148
    Par défaut
    Normalement le Cdate prend en compte les années sur 4 ou 2 chiffres et les jour et mois sur 2 ou 1 chiffres.

    Tu as utilisé quelle méthode ?

  8. #8
    Membre éclairé Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Par défaut
    Le cdate ne me transforme que les dates avec les années sur 2 chiffres... la syntaxe des dates avec les années sur 4 chiffres doit pas etre correcte.
    Bref, tant pis, j'ai contourné le problème et me suis arrangé pour pas avoir besoin de faire ces comparaisons...

    Merci quand meme

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 148
    Par défaut
    Tu peux toujours faire ta mise à jour en 2 temps.

    En 1er conversion des dates ayant l'année sur 2 chiffres.

    En 2ème (avec la formule de Starec) pour celle sur 4.

    En jouant sur la condition where tu devrais y parvenir sans mal.

    Cordialement,

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

Discussions similaires

  1. Mise à jour décrémentielle des dates dans une table
    Par Rony Rauzduel dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/01/2011, 12h53
  2. Forcer le format des dates dans une cellule
    Par cchampion2fr dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/10/2008, 13h20
  3. mapper des ejb3.0 à une table oracle existante
    Par kuruma45 dans le forum JPA
    Réponses: 27
    Dernier message: 04/05/2008, 00h22
  4. extraire des dates d'une table sans modifier la table
    Par t8024328 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/09/2007, 11h32
  5. [C#] Format des dates pour une ComboBox...
    Par frechy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/01/2005, 17h08

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