Convertion lettre en numerik

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

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

    cdlt
    1. salut,
      je travaille sous oracle.

      merci

      crdt
    2. Modérateur
      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 ;-)
  2. 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
    1. 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