money e smallmoney (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

Tipos de dados que representam valores monetários ou de moeda.

Comentários

Tipo de dados Intervalo Armazenamento
money -922.337.203.685.477,5808 a 922.337.203.685.477,5807 (-922.337.203.685.477,58
a 922.337.203.685.477,58 para o Informatica. O Informatica dá suporte apenas a dois decimais, não quatro.)
8 bytes
smallmoney -214,748.3648 a 214,748.3647 4 bytes

Os tipos de dados money e smallmoney têm a precisão de dez milésimos das unidades monetárias que eles representam. Para o Informatica, os tipos de dados money e smallmoney têm a precisão de um centésimo das unidades monetárias que eles representam.

Use um ponto para separar unidades monetárias parciais, como centavos, de unidades monetárias inteiras. Por exemplo, 2.15 especifica 2 dólares e 15 centavos.

Esses tipos de dados podem usar qualquer um dos seguintes símbolos de moeda.

Table of currency symbols, hexadecimal values

Os dados de moeda ou monetários não precisam ser incluídos entre aspas simples ( ' ). É importante lembrar que apesar de você poder especificar valores monetários precedidos por um símbolo de moeda, o SQL Server não armazena quaisquer informações de moeda associada com o símbolo, só armazena o valor numérico.

Convertendo dados money

Ao fazer a conversão em money de tipos de dados inteiro, presume-se que as unidades estejam em unidades monetárias. Por exemplo, o valor inteiro 4 é convertido no equivalente de money de 4 unidades monetárias.

O exemplo a seguir converte os valores smallmoney e money nos tipos de dados varchar e decimal, respectivamente.

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

Este é o conjunto de resultados.

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

Confira também

ALTER TABLE (Transact-SQL)CAST and CONVERT (Transact-SQL)CREATE TABLE (Transact-SQL)Data Types (Transact-SQL)DECLARE @local_variable (Transact-SQL)SET @local_variable (Transact-SQL)sys.types (Transact-SQL)