money und smallmoney (Transact-SQL)

Gilt für:yesSQL Server (alle unterstützen Versionen) YesAzure SQL-Datenbank YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics 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. Die Zahl 2.15 gibt z. B. 2 Dollar und 15 Cent an.

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

Table of currency symbols, hexadecimal values

Währungsdaten müssen nicht in einfache Anführungszeichen (') eingeschlossen werden. Sie sollten stets bedenken, dass Sie zwar Währungswerte angeben können, denen ein Währungssymbol vorangestellt ist, dass SQL Server jedoch keinerlei mit diesem Symbol verbundene Währungsinformationen speichert, sondern lediglich den nummerischen Wert.

Konvertieren von money-Daten

Beim Konvertieren von Ganzzahldatentypen in money-Datentypen wird davon ausgegangen, dass es sich bei den Einheiten um Währungseinheiten handelt. Der ganze Zahl 4 entspricht nach der Konvertierung in den money-Datentyp 4 Währungseinheiten.

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) AS 'SM_MONEY varchar',  
        CAST(@mymoney AS DECIMAL)    AS 'MONEY DECIMAL';  

Hier ist das Resultset.

SM_MONEY VARCHAR               MONEY DECIMAL  
------------------------------ ----------------------  
3148.29                        3148    
(1 row(s) affected)  

Siehe auch

ALTER TABLE (Transact-SQL)CAST und CONVERT (Transact-SQL)CREATE TABLE (Transact-SQL)Datentypen (Transact-SQL)DECLARE @local_variable (Transact-SQL)SET @local_variable (Transact-SQL)sys.types (Transact-SQL)