money e smallmoney (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
Tipi di dati che rappresentano valori monetari o valutari.
Osservazioni:
Tipo di dati | Intervallo | 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.
Simbolo | Valuta | Valore esadecimale |
---|---|---|
$ | Simbolo del dollaro | 0024 |
¢ | Segno cent | 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 due punti | 20A1 |
₢ | Segno cruzeiro | 20A2 |
₣ | Segno franco francese | 20A3 |
₤ | Segno di Lira | 20A4 |
₥ | Segno di mill | 20A5 |
₦ | Segno naira | 20A6 |
₧ | Segno di Peseta | 20A7 |
Rs | Segno di rupia | 20A8 |
₩ | Segno vinto | 20A9 |
₪ | Nuovo segno sheqel | 20AA |
₫ | Segno di Dong | 20AB |
€ | Segno euro | 20AC |
₭ | Segno kip | 20AD |
₮ | Segno tugrik | 20AE |
₯ | Segno Drachma | 20AF |
₰ | Segno tedesco Penny | 20B0 |
₱ | Segno peso | 20B1 |
﷼ | Firma 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.
Avviso
È 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