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

SQL Oracle Discussion :

Transformations colonne en chiffre et date


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Points : 51
    Points
    51
    Par défaut Transformations colonne en chiffre et date
    Bonjour,

    J'ai une colonne qui contient des dates et des chiffres comme suit :
    Nom : Capture.JPG
Affichages : 203
Taille : 12,9 Ko

    Dans cette même colonne je souhaite remplacer les "," par des "." quand c'est un nombre décimal.
    Quand c'est une date il faut que je passe la date au format "YY-MM-DD"'.

    Cependant quand j'ai un "null" dans ma colonne et lorsque je souhaite procéder au transofrmation de date dans cette colonne j'ai l'erreur suivante:
    ORA-01858: a non-numeric character was found where a numeric was expected

    Je voudrais donc savoir comment résoudre cette erreur ?

    Permet de changer le format date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select to_char(to_date(ValeursAxeStatClient,'DDMMYY'), 'YY-MM-DD') 
               from axe_stat_client
    ;

    Pour remplacer les "." par "," :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select replace(ValeursAxeStatClient,',','.')
       from axe_stat_client

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Bizarre ton select, tu transformes un format DDMMYY alors que tu nous affiches un 30/05/2018

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(to_date(ValeursAxeStatClient,'DDMMYY'), 'YY-MM-DD')  from axe_stat_client
    POur le problème du NULL, suffit que tu ne les prennes pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where ValeursAxeStatClient is not null
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Points : 51
    Points
    51
    Par défaut
    Oui effectivement je n'ai pas affiché la bonne capture d’écran mais sinon la transformation date fonctionne (car j'ai essayé en travaillant avec la table DUAL)

    Cependant j'ai essayé la requête en rajoutant un where is not null et j'ai l'erreur suivante maintenant :
    Nom : Capture.JPG
Affichages : 226
Taille : 36,0 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select to_char(to_date(valeuraxestatclient,'DDMMYY'), 'YY-MM-DD')
    from stambia.tmp_axe_stat_client;

    Mais en fait je me demande pas si le problème vient parce que dans ma colonne j'ai du null et des nombres à virgule ou des nombres entier.

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Points : 51
    Points
    51
    Par défaut
    J'ai trouvé la requête qui fonctionnait bien :

    Avec la fonction "instr" je cherche si il y'a un nombre qui contient "/" puis j'effectue la transformation date
    Puis je regarde si un nombre contient "," et je remplace par "."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select instr( valeuraxestatclient, '/' ), valeuraxestatclient,
    case 
    when instr(valeuraxestatclient, '/') <> 0 then to_char(to_date(valeuraxestatclient,'DD/MM/YYYY'), 'YY-MM-DD')
    when instr(valeuraxestatclient,',')<>0 then replace(valeuraxestatclient,',','.')
    else valeuraxestatclient end
    From stambia.tmp_axe_stat_client;

    Nom : Capture.JPG
Affichages : 199
Taille : 34,4 Ko

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Bien sûr.. un to_char('MARYLIN', 'DDMMYY') va jamais passer.
    Il faut que tu gères cas par cas : La transformation des dates, la transformation des ','


    En fait tu viens de trouver le temps que j'écrive.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Points : 51
    Points
    51
    Par défaut
    Oui mais je ne savais pas comment gérer les cas comme "Maryline" mais après avoir chercher un peu c'est bon.

    En tout cas merci de m'avoir un peu aiguillé.

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

Discussions similaires

  1. [XL-2013] [debutant]Transformer chiffres en date
    Par GEGE95 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2017, 18h33
  2. [XL-2010] Vba Application.VLookup excel transforme les chiffres en DATE :(
    Par wkrystof1 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/04/2017, 20h44
  3. [XL-2007] Transformer une saisie de 3 chiffres en date et heure
    Par apt dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/01/2015, 15h23
  4. [Dates] transformation du format de la date
    Par maraly dans le forum Langage
    Réponses: 5
    Dernier message: 07/03/2007, 17h20
  5. [VBA-E]Transformer colonne en ligne
    Par amd64 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/03/2006, 14h48

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