Convert string in money

lunedì 18 maggio 2009 - 09.37

ilario Profilo | Senior Member

ciao

devo fare una select in una tebella per poi riempire una listview

ho un campo prezzo , è una string € 6,00

questo prezzo è già comprensivo di iva , nella select volevo convertirlo in numero e /1,20 per poi riconvertirlo in forma € 5

ho provato con convert (money e dividerlo 1/20 a parte che mi da 500,00 e sarebbe il meno, lo protrei dividere per 100 (anche se mi sembra sbagliato) ma poi non riesco a ritrasformarlo in € 5

come posso fare?

grazie mille
ilario

lbenaglia Profilo | Guru

>ho un campo prezzo , è una string € 6,00

Ciao Ilario,

Per quale motivo è stato deciso di memorizzare gli importi in una colonna stringa?

>questo prezzo è già comprensivo di iva , nella select volevo
>convertirlo in numero e /1,20 per poi riconvertirlo in forma
>€ 5
>
>ho provato con convert (money e dividerlo 1/20 a parte che mi
>da 500,00 e sarebbe il meno, lo protrei dividere per 100 (anche
>se mi sembra sbagliato) ma poi non riesco a ritrasformarlo in
>€ 5
Il 500 che ottieni dipende dal fatto che per SQL Server il separatore decimale è SEMPRE il punto "." pertanto la virgola verrà ignorata.
Se per un motivo che ignoro non vuoi/puoi modificare il data type della colonna, dovrai prima di tutto sostituire la virgola con il punto e poi eseguire il calcolo:

USE tempdb; SELECT '€ ' + CONVERT( varchar(15) , CAST(REPLACE(N'€ 6,00', N',', N'.') AS money) / CAST(1.2 AS money) ) AS Importo; /* Output: Importo ----------------- € 5.00 (1 row(s) affected) */

>grazie mille
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ilario Profilo | Senior Member

ciao

<Se per un motivo che ignoro non vuoi/puoi modificare il data type della colonna
purtroppo il db era già cosi e mi resta difficile rimpostare tutto il programma , visto che questa è l'unica select dove devo calcolare qualcosa sul prezzo, preferisco non toccare altro


adesso la provo
grazie mille
ilario
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5