money und smallmoney (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-Datenbank in Microsoft Fabric

Datentypen zur Darstellung von Währungswerten.

Remarks

Datentyp Range Storage
money -922.337.203.685.477,5808 bis 922.337.203.685.477,5807 (-922.337.203.685.477,58
bis 922.337.203.685.477,58 für Informatica. Informatica unterstützt nur zwei Dezimalstellen, nicht vier.)
8 Bytes
smallmoney -214,748.3648 bis 214.748,3647 4 Byte

Die Datentypen money und smallmoney weisen die Genauigkeit eines Zehntausendstels der dargestellten Währungseinheiten auf. Für Informatica weisen die Datentypen money und smallmoney die Genauigkeit eines Hundertstels der dargestellten Währungseinheiten auf.

Mit einem Punkt werden Währungsuntereinheiten, wie z. B. Cent, von ganzen Währungseinheiten getrennt. Gibt beispielsweise 2.15 2 Dollar und 15 Cent an.

Diese Datentypen können eines der folgenden Währungssymbole verwenden.

Symbol Currency Hexadezimalwert
$ Dollarzeichen 0024
¢ Cent-Zeichen 00A2
£ Pfundzeichen 00A3
¤ Währungssymbol 00A4
¥ Yen-Zeichen 00A5
৲ Bengalische Rupienmarke 09F2
৳ Bengali-Rupienzeichen 09F3
฿ Thai Baht Währungssymbol 0E3F
៛ Khmer Riel Währungssymbol 17DB
₠ Euro-Währungszeichen 20A0
₡ Dickdarmzeichen 20A1
₢ Cruzeiro-Zeichen 20A2
₣ Französisches Franczeichen 20A3
₤ Lira-Zeichen 20A4
₥ Mühlenschild 20A5
₦ Naira-Zeichen 20A6
₧ Peseta-Schild 20A7
₨ Rupienzeichen 20A8
₩ Won-Zeichen 20A9
₪ Neues Sheqel-Zeichen 20AA
₫ Dong-Zeichen 20AB
€ Eurozeichen 20AC
₭ Kip-Schild 20AD
₮ Tugrik-Zeichen 20AE
₯ Drachma-Zeichen 20AF
₰ Deutsches Centzeichen 20B0
₱ Pesozeichen 20B1
﷼ Rial-Zeichen FDFC
﹩ Kleines Dollarzeichen FE69
$ Dollarzeichen voller Breite FF04
¢ Cent-Zeichen mit voller Breite FFE0
£ Pfundzeichen voller Breite FFE1
¥ Yenzeichen mit voller Breite FFE5
₩ Zeichen "Won" mit voller Breite FFE6

Sie müssen keine Währungs- oder Währungsdaten in einfache Anführungszeichen (') einschließen. Sie können zwar Währungswerte vor einem Währungssymbol angeben, SQL Server speichert jedoch keine Währungsinformationen, die dem Symbol zugeordnet sind, und speichert nur den numerischen Wert.

Warning

Beim Speichern von Geldwerten als Geld und Kleingeld können Sie Fehler durch Abschneiden runden. Vermeiden Sie die Verwendung dieses Datentyps, wenn Ihre Geld- oder Währungswerte in Berechnungen verwendet werden. Verwenden Sie stattdessen den Dezimaldatentyp mit mindestens vier Dezimalstellen.

Konvertieren von Gelddaten

Beim Konvertieren von Ganzzahldatentypen in money-Datentypen wird davon ausgegangen, dass es sich bei den Einheiten um Währungseinheiten handelt. Beispielsweise wird der ganzzahlige Wert von 4 4 Währungseinheiten in das Geldäquivalent konvertiert.

Das folgende Beispiel konvertiert smallmoney- und money-Werte jeweils in varchar- und decimal-Datentypen.

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

Hier sehen Sie das Ergebnis. Da der Dezimaltyp im Beispiel keine Skalierung aufweist, wird der Wert abgeschnitten.

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