SQL SERVER - CONVERSION D'UN NOMBRE RÉEL (TYPE DÉCIMALE) EN CARACTÈRES AVEC MISE
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 2007
-
6 mai 2005 à 12:54
FENETRES
Messages postés196Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention14 avril 2009
-
9 mai 2005 à 16:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
FENETRES
Messages postés196Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention14 avril 2009 9 mai 2005 à 16:30
Conclusion : tester... toujours tester avant de critiquer.
FENETRES
Messages postés196Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention14 avril 2009 9 mai 2005 à 16:26
Toutefois la conversion n'est pas sans incidence !
Petite différence à signaler :
select replace (cast ( cast(12345678.2 as real) as varchar), '.', ',') -- retourne 1,23457e+007
select dbo.fn_Dec2ToStr(12345678.2) --retourne 12345678,2
FENETRES
Messages postés196Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention14 avril 2009 9 mai 2005 à 16:08
OK, pour la conversion en real (mauvaise lecture)
FENETRES
Messages postés196Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention14 avril 2009 9 mai 2005 à 15:47
Encore un petit effort... je ne veux pas des zéros inutiles après la virgule !
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 9 mai 2005 à 15:41
Il suffit de le dire ^^
select replace (cast ( cast(1.20 as real) as nvarchar), '.', ',')
et hop ! :o)
FENETRES
Messages postés196Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention14 avril 2009 9 mai 2005 à 15:28
Effectivement, sauf que je veux en retour la valeur avec la virgule et sans le niveau de précision (échelle) car, dans mon cas précis, j'effectue un import direct à partir d'Excel (données externes).
Différences :
select cast(1.20 as varchar(19)) -- retourne '1.20'
select dbo.fn_Dec2ToStr(1.20) -- retourne '1,2'
Alors, effectivement, c'est très spécifique !
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 6 mai 2005 à 12:57
ah oui, et pour transformer ton chiffre en 12,8 tu peux faire :
cast ( cast(.125 as dec(18,2)) as nvarchar)
;o)
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 6 mai 2005 à 12:54
J'ai mis 3, la source est intéressante, mais si tu fais :
cast (monnombre as nvarchar)
c'est plus efficace (ou alors j'ai rien compris :) )
9 mai 2005 à 16:30
9 mai 2005 à 16:26
Petite différence à signaler :
select replace (cast ( cast(12345678.2 as real) as varchar), '.', ',') -- retourne 1,23457e+007
select dbo.fn_Dec2ToStr(12345678.2) --retourne 12345678,2
9 mai 2005 à 16:08
9 mai 2005 à 15:47
9 mai 2005 à 15:41
select replace (cast ( cast(1.20 as real) as nvarchar), '.', ',')
et hop ! :o)
9 mai 2005 à 15:28
Différences :
select cast(1.20 as varchar(19)) -- retourne '1.20'
select dbo.fn_Dec2ToStr(1.20) -- retourne '1,2'
Alors, effectivement, c'est très spécifique !
6 mai 2005 à 12:57
cast ( cast(.125 as dec(18,2)) as nvarchar)
;o)
6 mai 2005 à 12:54
cast (monnombre as nvarchar)
c'est plus efficace (ou alors j'ai rien compris :) )