Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema di Piattaforma Analitica (PDW)
Database SQL in Microsoft Fabric
Tipi di dati che rappresentano valori monetari o valutari.
Remarks
| Tipo di dati | Range | Storage |
|---|---|---|
| money | Da -922.337.203.685.477,5808 a 922.337.203.685.477,5807 (da -922.337.203.685.477,58 a 922.337.203.685.477,58 per Informatica. Informatica supporta solo due posizioni decimali e non quattro). |
8 byte |
| smallmoney | Da -214.748.3648 a 214.748.3647 | 4 byte |
I tipi di dati money e smallmoney sono caratterizzati da una precisione pari a dieci millesimi delle unità monetarie rappresentate. Per Informatica i tipi di dati money e smallmoney sono caratterizzati da una precisione pari a un centesimo delle unità monetarie rappresentate.
Per separare le unità di valuta parziali, ad esempio i centesimi, da quelle intere, utilizzare il punto. Ad esempio, 2.15 specifica 2 dollari e 15 centesimi.
È possibile utilizzare questi tipi di dati per i simboli di valuta illustrati di seguito.
| Symbol | Currency | Valore esadecimale |
|---|---|---|
| $ | Segno del dollaro | 0024 |
| ¢ | Cartello del centesimo | 00A2 |
| £ | Cancelletto | 00A3 |
| ¤ | Segno di valuta | 00A4 |
| ¥ | Segno Yen | 00A5 |
| ৲ | Rupia del Bengali | 09F2 |
| ৳ | Rupe del Bengali | 09F3 |
| ฿ | Simbolo di valuta thai | 0E3F |
| ៛ | Simbolo di valuta Dei Riel | 17DB |
| ₠ | Segno di valuta euro | 20A0 |
| ₡ | Segno dei due punti | 20A1 |
| ₢ | Cartello Cruzeiro | 20A2 |
| ₣ | Segno franco francese | 20A3 |
| ₤ | Cartello di lira | 20A4 |
| ₥ | Insegna del mulino | 20A5 |
| ₦ | Insegna Naira | 20A6 |
| ₧ | Insegna di Peseta | 20A7 |
| ₨ | Segno della rupia | 20A8 |
| ₩ | Cartello vincente | 20A9 |
| ₪ | Nuovo segno sheqel | 20AA |
| ₫ | Cartello Dong | 20AB |
| € | Segno dell'euro | 20AC |
| ₭ | Segno Kip | 20AD |
| ₮ | Segno di Tugrik | 20AE |
| ₯ | Segno di dracma | 20AF |
| ₰ | Segno tedesco Penny | 20B0 |
| ₱ | Segno del peso | 20B1 |
| ﷼ | Insegna Rial | FDFC |
| ﹩ | Piccolo segno di dollaro | FE69 |
| $ | Segno di dollaro a larghezza intera | FF04 |
| ¢ | Segno Cent a larghezza intera | FFE0 |
| £ | Segno cancelletto a larghezza intera | FFE1 |
| ¥ | Segno yen a larghezza intera | FFE5 |
| ₩ | Segno vinto a larghezza intera | FFE6 |
Non è necessario racchiudere i dati monetari o di valuta tra virgolette singole ('). Sebbene sia possibile specificare i valori monetari preceduti da un simbolo di valuta, SQL Server non archivia informazioni di valuta associate al simbolo, ma archivia solo il valore numerico.
Warning
È possibile riscontrare errori di arrotondamento tramite troncamento, quando si archiviano valori monetari come denaro e smallmoney. Evitare di usare questo tipo di dati se i valori money o currency vengono usati nei calcoli. Usare invece il tipo di dati decimal con almeno quattro posizioni decimali.
Convertire i dati money
Nella conversione dal tipo di dati Integer a money le unità vengono interpretate come unità di valuta. Ad esempio, il valore intero di 4 viene convertito nell'equivalente money di 4 unità monetarie.
Nell'esempio seguente i valori smallmoney e money vengono convertiti rispettivamente nei tipi di dati varchar e decimal.
DECLARE @mymoney_sm SMALLMONEY = 3148.29,
@mymoney MONEY = 3148.29;
SELECT CAST(@mymoney_sm AS VARCHAR(20)) AS 'SM_MONEY VARCHAR(20)',
CAST(@mymoney AS DECIMAL) AS 'MONEY DECIMAL';
Il set di risultati è il seguente. Poiché il tipo decimale nell'esempio non ha una scala, il valore viene troncato.
SM_MONEY VARCHAR(20) MONEY DECIMAL
------------------------------ ----------------------
3148.29 3148