money und smallmoney (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Datentypen zur Darstellung von Währungswerten.
Bemerkungen
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 Bytes |
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 | Währung | 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 |
₡ | Doppelpunktzeichen | 20A1 |
₢ | Cruzeiro-Zeichen | 20A2 |
₣ | Französisches Franczeichen | 20A3 |
₤ | Lira-Zeichen | 20A4 |
₥ | Millzeichen | 20A5 |
₦ | Naira-Zeichen | 20A6 |
₧ | Peseta-Zeichen | 20A7 |
Rs | Rupienzeichen | 20A8 |
₩ | Won sign | 20A9 |
₪ | Neues Sheqel-Zeichen | 20AA |
₫ | Dong-Zeichen | 20AB |
€ | Eurozeichen | 20AC |
₭ | Kip-Zeichen | 20AD |
₮ | Tugrik-Zeichen | 20AE |
₯ | Drachmazeichen | 20AF |
₰ | Deutsches Centzeichen | 20B0 |
₱ | Pesozeichen | 20B1 |
﷼ | Rialzeichen | 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.
Warnung
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