Dela via


pengar och smallmoney (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-databas i Förhandsversion av Microsoft Fabric

Datatyper som representerar monetära värden eller valutavärden.

Remarks

Data type Range Storage
money -922 337 203 685 477,5808 till 922 337 203 685 477 5807 (-922 337 203 685 477,58
till 922 337 203 685 477,58 för Informatica. Informatica stöder bara två decimaler, inte fyra.)
8 bytes
smallmoney -214 748,3648 till 214 748,3647 4 bytes

De pengarna och småpengar datatyperna är korrekta för en tiotusendel av de monetära enheter som de representerar. För Informatica är pengar och småpengar datatyper korrekta till en hundradel av de monetära enheter som de representerar.

Använd en period för att separera partiella monetära enheter, till exempel cent, från hela monetära enheter. Till exempel anger 2.15 2 dollar och 15 cent.

Dessa datatyper kan använda någon av följande valutasymboler.

Symbol Currency Hexadecimal value
$ Dollar sign 0024
¢ Cent sign 00A2
£ Pound sign 00A3
¤ Currency sign 00A4
¥ Yen sign 00A5
Bengali Rupee markerar 09F2
Bengali Rupee tecken 09F3
฿ Thai Baht valutasymbol 0E3F
Khmer Riel valutasymbol 17DB
Euro valutatecken 20A0
Colon sign 20A1
Cruzeiro sign 20A2
Franska Franc-skylt 20A3
Lira sign 20A4
Mill sign 20A5
Naira sign 20A6
Peseta sign 20A7
Rupee sign 20A8
Won sign 20A9
Ny Sheqel-skylt 20AA
Dong sign 20AB
Euro sign 20AC
Kip sign 20AD
Tugrik sign 20AE
Drachma sign 20AF
Tyska Penny-skylt 20B0
Peso sign 20B1
Rial sign FDFC
Små dollartecken FE69
Dollartecken med full bredd FF04
Cent-tecken med full bredd FFE0
Fullbreddstecken för pund FFE1
Yen-tecken med full bredd FFE5
Tecknet Vann med full bredd FFE6

Du behöver inte omsluta valuta- eller penningdata inom enkla citattecken ('). Du kan ange monetära värden som föregås av en valutasymbol, men SQL Server lagrar inte någon valutainformation som är associerad med symbolen, men den lagrar bara det numeriska värdet.

Warning

Du kan uppleva avrundningsfel via trunkering när du lagrar monetära värden som pengar och smallmoney. Undvik att använda den här datatypen om dina pengar eller valutavärden används i beräkningar. Använd i stället decimal datatyp med minst fyra decimaler.

Konvertera pengadata

När du konverterar till pengar från heltalsdatatyper antas enheterna finnas i monetära enheter. Till exempel konverteras heltalsvärdet för 4 till pengar motsvarande 4 monetära enheter.

I följande exempel konverteras och pengar värden till varchar respektive decimaler datatyper.

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';

Här är resultatuppsättningen. Eftersom det decimaltecknet i exemplet inte har någon skalatrunkeras värdet.

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