Megosztás a következőn keresztül:


pénz és kismamák (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Pénzbeli vagy pénznemértékeket ábrázoló adattípusok.

Remarks

Adattípus Range Storage
money -922 337 203 685 477.5808–922.337.203.685.477.5807 (-922 337 203 685 477,58
az Informatica esetében a 922 337 203 685 477,58-ra. Az Informatica csak két tizedesjegyet támogat, négyet nem.)
8 bájt
smallmoney -214 748.3648–214.748.3647 4 bájt

A pénz és kisvállalati adattípusok az általuk képviselt pénzügyi egységek tizedére pontosak. Az Informatica esetében a pénz és kisvállalati adattípusa pontosan az általuk képviselt pénzügyi egységek egyszázadára pontos.

Időszak használatával elkülöníthet részleges pénzügyi egységeket, például centeket a teljes pénzügyi egységektől. Például 2.15 2 dollárt és 15 centet határoz meg.

Ezek az adattípusok az alábbi pénznemszimbólumok bármelyikét használhatják.

Symbol Currency Hexadecimális érték
$ Dollárjel 0024
¢ Cent-jel 00A2
£ Kettős kereszt 00A3
¤ Valutajegy 00A4
¥ Jen jel 00A5
Bengáli rúpiajel 09F2
Bengáli rúpia jel 09F3
฿ Thai Baht pénznem szimbóluma 0E3F
Khmer Riel pénznemszimbólum 17DB
Euró pénznem jele 20A0
Alakbéljel 20A1
Cruzeiro jel 20A2
Francia frank jel 20A3
Lira jel 20A4
Malomtábla 20A5
Naira jel 20A6
Peseta jel 20A7
Rúpia jel 20A8
Won jelzés 20A9
Új Sheqel-jel 20AA
A dúló jele 20AB
Euro jel 20AC
Kip jel 20AD
Tugrik jel 20AE
Drachma jel 20AF
Német Penny-jel 20B0
Peso jel 20B1
Rial jel FDFC
Kis dollárjel FE69
Teljes szélességű dollárjel FF04
Teljes szélességű cent jel FFE0
Teljes szélességű fontjel FFE1
Teljes szélességű jenjel FFE5
Teljes szélességű Won-jel FFE6

Nem kell egyetlen idézőjelbe (') belefoglalnia a pénznemet vagy a monetáris adatokat. Bár megadhatja a pénznemszimbólum előtti pénzbeli értékeket, az SQL Server nem tárolja a szimbólumhoz társított pénznemadatokat, csak a numerikus értéket tárolja.

Warning

Csonkolással kerekítési hibákat tapasztalhat, amikor pénzértékeket tárol pénz és kisvállalati. Ne használja ezt az adattípust, ha a pénz- vagy pénznemértékeket a számításokban használják. Ehelyett használja a decimális adattípust legalább négy tizedesjegygel.

Pénzadatok konvertálása

Ha egész szám adattípusból pénzre vált, a rendszer feltételezi, hogy az egységek pénzügyi egységekben vannak. A egész számértéke például 4 pénzegység pénzegységre lesz konvertálva.

Az alábbi példa kisvállalati és pénz értékeket varchar és decimális adattípussá alakítja.

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

Itt van az eredményhalmaz. Mivel a példában szereplő decimális típus nem rendelkezik skálázási, az érték csonkolt.

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