Share via


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.

Símbolo Moeda Valor hexadecimal
$ Cifrão 0024
¢ Sinal de centavo 00A2
£ Sustenido 00A3
¤ Sinal de moeda 00A4
¥ Sinal de iene 00A5
Marca de rúpia bengali 09F2
Sinal de rúpia bengali 09F3
฿ Símbolo da moeda tailandesa Baht 0E3F
Símbolo da moeda Khmer Riel 17DB
Sinal de moeda do euro 20A0
Sinal de cólon 20A1
Sinal do Cruzeiro 20A2
Sinal do franco francês 20A3
Sinal de Lira 20A4
Sinal do moinho 20A5
Sinal de Naira 20A6
Sinal de Peseta 20A7
O Sinal de rúpia 20A8
Sinal de vitória 20A9
Novo sinal de Sheqel 20AA
Sinal de Dong 20AB
Sinal do euro 20AC
Sinal de Kip 20AD
Sinal de Tugrik 20AE
Sinal de dracma 20AF
Sinal de Penny alemão 20B0
Sinal de peso 20B1
Sinal de Rial FDFC
Cifrão pequeno FE69
Cifrão de largura total FF04
Sinal de centavo de largura total FFE0
Sinal de Libra de largura total FFE1
Sinal de iene de largura total FFE5
Sinal de Won de largura total FFE6

Você não precisa colocar moeda ou dados monetários entre aspas simples ('). Embora você possa especificar valores monetários precedidos por um símbolo de moeda, o SQL Server não armazena nenhuma informação de moeda associada ao símbolo, ele armazena apenas o valor numérico.

Aviso

Você pode experimentar erros de arredondamento através de truncamento, ao armazenar valores monetários como dinheiro e dinheiro pequeno. Evite usar esse tipo de dados se seus valores monetários ou monetários forem usados em cálculos. Em vez disso, use o tipo de dados decimal com pelo menos quatro casas decimais.

Converter dados de dinheiro

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 de 4 é convertido para o equivalente monetário 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(20)) AS 'SM_MONEY VARCHAR(20)',
    CAST(@mymoney AS DECIMAL) AS 'MONEY DECIMAL';

Este é o conjunto de resultados. Como o tipo decimal no exemplo não tem uma escala, o valor é truncado.

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