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 :

Conversion en décimal ne garde pas les chiffres après la virgule


Sujet :

Requêtes MySQL

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut Conversion en décimal ne garde pas les chiffres après la virgule
    Bonjour,
    Suite à import d'un fichier texte dans une table, des taux en pourcentage sont stockés dans une colonne de type char(5) sous la forme '25,36' (avec une virgule et non pas un point).
    J'ai créé une nouvelle colonne de type DECIMAL(4,2) UNSIGNED pour y transposer ces pourcentages mais lorsque que j'essaie de convertir, les chiffres après la virgule sont passés à zéro ('25,36' devient 25.00).

    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE source_campagne
    SET TAUX_MAT_GRA = CAST(TX_MAT_GRA AS DECIMAL(4,2)) ;
    J'ai essayé aussi sans (4,2) ou en dehors de la table ce qui suit mais c'est pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(  '25,36' AS DECIMAL( 10, 3  )  ) ;
    La requête ci-dessus donne 25.000 !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    ca devient un peu lourd mais une solution serait de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(  replace('25,36',',','.') AS DECIMAL( 10, 3  )  ) ;
    A+

    Michel

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    Lourd peut-être... mais ça fonctionne ! C'est l'essentiel, merci !


    Ma requête finale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE source_campagne
    SET TAUX_MAT_GRA = CAST(REPLACE(TX_MAT_GRA, ',', '.') AS DECIMAL(4,2)) ;
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. Supprimer les chiffres après la virgule
    Par vbword dans le forum VBA Word
    Réponses: 5
    Dernier message: 27/10/2015, 14h41
  2. Réponses: 3
    Dernier message: 14/07/2011, 14h17
  3. Arrondir les chiffres après la virgule
    Par laurent23 dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/06/2011, 12h06
  4. division qui conserve les chiffres après la virgule
    Par ali.ensi dans le forum Débuter
    Réponses: 3
    Dernier message: 05/10/2007, 13h26
  5. Réponses: 4
    Dernier message: 20/09/2007, 14h08

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