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

MS SQL Server Discussion :

Convertir un varchar en float


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut Convertir un varchar en float
    Salut salut,
    je souhaite convertir un varchar en chiffre à virgule, afin de faire des tests sur la valeur de la variable. Tous mes résultats sont stockés en tant que varchar, et la conversion est indispensable.

    Pour cela, j'ai essayé de faire un transtypage avec cast(@mon_varchar as decimal), apres avoir testé que mon varchar est bien numérique.
    Seulement, j'ai un pb que je ne comprend pas lors de l'éxecution de ma procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Arithmetic overflow error for type varchar, value = 89.000000.
    Je me dis, que ma méthode de conversion n'est pas optimale, et qu'il existe peut etre une autre méthode... Si vous avez une idée, elle sera la bienvenue...

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Une autre solution serait envisageable: celle de recréer mon chiffre en récupérant les chiffres avant la virgule, puis ceux après, et de compter le nb de chifres après, pour calculer mon chiffre:
    Pour cela, il faut que je puisse utiliser des fonctions de chaines de caractères, mais certaines ne marchent pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET @position_virgule= INSRT(',', @valeur)
    SET @chiffre1= LEFT(@valeur, @position_virgule-1)
    SET @chiffre2= RIGHT(@valeur, @position_virgule+1)
    SET @longueur_post_virgule=CHARACTER_LENGTH(@chiffre2)
    SET @valeur_numerique=@chiffre1+@chiffre2/(10*@longueur_post_virgule)
    En sql server, je ne connais pas les fonctions correspondantes...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Est-ce que quelqu'un sait quelle fonction utiliser en sql server 2000 pour trouver la longueur d'une chaine, parce que CHARACTER_LENGTH ne marche pas...

  4. #4
    Membre actif Avatar de David.V
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 191
    Points : 203
    Points
    203
    Par défaut
    As tu essayé de convertir en float ?

  5. #5
    Membre actif Avatar de David.V
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 191
    Points : 203
    Points
    203
    Par défaut
    Citation Envoyé par Tapioca
    Est-ce que quelqu'un sait quelle fonction utiliser en sql server 2000 pour trouver la longueur d'une chaine, parce que CHARACTER_LENGTH ne marche pas...
    Il me semble que c'est Len.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Oui c'est bien len, je viens de trouver ça, merci !

    Pour la conversion en float, en fait j'ai à peu près tout essayé, ca marchait pas, du coup, c'est vrai que c'est plus lourd, mais ma transformation a l'air de marcher, je vais faire 2, 3 tests pour m'en assurer.

    Merci

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Bon, alors j'ai un pb qui ne doit pas etre super compliqué: je cherche une fonction qui me permette de retrouver un caractere dans une chaine...
    ni INSRT, ni LOCATE ne marche en sql server... Help !

  8. #8
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    tu as

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CHARINDEX(sous_chaine,chaine)
    A+

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Merci, merci beaucoup, ca marche

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

Discussions similaires

  1. Convertir un String en Float
    Par alex75 dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2006, 19h58
  2. [XSLT]Convertir une chaîne en float, int etc ... avec XSL
    Par wozzz dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/05/2006, 10h12
  3. Réponses: 27
    Dernier message: 13/01/2006, 23h46
  4. Conversion de varchar en float possible ?
    Par toyyo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/12/2005, 17h05
  5. Convertir un varchar en real ??
    Par matgel dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/11/2003, 19h56

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