Convertion lettre en numerik

camantoi -  
castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je dois créer une table avec deux colonnes (sous sql +).
1ere colonne varchar(20) avec comme données le mois + année sous forme 'JANVIER 2011'
La seconde colonne doit convertir cette 1ere colonne en numerique '201101'. Et ainsi traduire tous les mois de l'année....201102,201103......
Mais je ne sais pas comment faire. Quelqu'un sait???

3 réponses

  1. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982
     
    Salut,

    Quel est ton sgbd ? Car le traitement des chaines de caractères est particulier pour chaque logiciel et chaque sql.

    cdlt
    0
    1. camantoi
       
      salut,
      je travaille sous oracle.

      merci

      crdt
      0
    2. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982
       
      Tu as de la chance c'est celui que je connais.

      Alors il faut que tu étudies les fonctions decode, substr, et instr

      Voila pour le mois :

      select decode(substr(champ1,1,instr(champ1,' ')-1), 'JANVIER','01', 'FEVRIER','02', ... , '00')     
      from table1;

      C'est plus simple pour l'année pas besoin du decode, je te laisse le faire ;-)
      0
  2. Jean_Jacques Messages postés 1045 Date d'inscription   Statut Membre Dernière intervention   112
     
    Bonsoir camantoi,

    A toutes fins utiles, l'équivalent sous SQL/Access

    SELECT TRANSACTIONS.DateSaisie, DatePart("yyyy",[Datesaisie]) & Format([datesaisie],"mm") AS EXTRACTION
    FROM TRANSACTIONS
    ORDER BY TRANSACTIONS.DateSaisie;

    Cordialement
    0
  3. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
     
    Bonjour
    Dans un requete access:

    SELECT date.DateEntrée, Format([DateEntrée],"ddmmyyyy") AS [Date]
    FROM [date];

    Ceci transforme une date traditionnelle en 13092011
    pour avoir 201109, tu dois uilisé le format comme ceci: yyyymm
    0