Convertir des champs type VARCHAR vers FLOAT
Salut tout le monde ,
Je travaille sur une app VB.NET avec une BDD SQL SERVER 2008 R2
Pour résumer la situation j'essaye de convertir des champs de la table Credits qui sont de type varchar en float pour faire une mise à jour des paiements des clients , voici la table : Credits (idcredit , id client , idproduit , montant , avance , reste).
Les champs : montant , avance et reste sont de type varchar et ce que j'essaye de faire est de :
1-Avec la fonction REPLACE de remplacer l'espace qui symbolise le groupement des chiffres : REPLACE(avance,' ','') par exemple 5 200,00 £ devra etre 5200,00 £ puis de remplacer aussi la virgule (comma) par le point décimal seul reconnu par SQL SERVER comme séparateur décimal ( l'erreur s'affiche : Cannot convert varchar datatype to float car dans mes paramètres régionaux la virgule est le séparateur décimal ) et cela pour les deux autres champs : "montant" et "reste"
REPLACE (avance,',','.') donc 5 200,00 £ devra etre 5 200.00£
Donc j'ai essayé de changer mes paramètres régionaux en utilisant le point décimal comme séparateur décimal mais je n'arrive pas à comprendre pourquoi SQL SERVER 2008 R2 me donne toujours cette erreur : Error converting data type varchar to float.
Voici mon code ( J'essaye de calculer le reste en fonction des versements du client )
Code:
1 2 3 4 5 6 7 8 9 10 11
| ALTER PROC [dbo].[CALC_RESTECREDIT]
@id int,
@montaj varchar(50)
as
UPDATE Credits SET Avance = CAST(replace(Avance,' ','') as float) + CAST(replace(@montaj,' ','') as float)
,Reste =CAST(replace(MontVente,' ','') as float) - CAST(replace(Avance,' ','') as float)
WHERE ClientID =@id |
Merci d'avance
Convertir des champs type VARCHAR vers FLOAT
Salut Merci pour vos remarques mais si pouvez utiliser des termes moins choquant et je ne viens pas de MYSQMerde un peu de respect s'impose entre nous car l'erreur est humaine et personne n'est parfait , pour le choix de Varchar à la place d'autres types de données évidents c'est vrai vous avez raison mais ce qui m'a choqué c'est les termes utilisés pour juger les autres avec mépris.