Share via


money e smallmoney (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma 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
$ Segno di 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';

Questo è il set di risultati. Poiché il tipo decimale nell'esempio non ha una scala, il valore viene troncato.

SM_MONEY VARCHAR(20)           MONEY DECIMAL
------------------------------ ----------------------
3148.29                        3148