Partilhar via


dinheiro e dinheiro pequeno (Transact-SQL)

Aplica-se a:Banco de Dados SQL doAzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Banco de Dados SQL no Microsoft Fabric

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

Remarks

Tipo de dados Range Armazenamento
money -922.337.203.685.477,5808 a 922.337.203.685.477,5807 (-922.337.203.685.477,58
para 922.337.203.685.477,58 para Informática. A Informatica suporta apenas duas casas decimais, não quatro.)
8 bytes
smallmoney -214.748,3648 a 214.748,3647 4 bytes

Os dinheiro e tipos de dados de de dinheiro pequeno são precisos para um décimo milésimo das unidades monetárias que representam. Para a Informatica, os tipos de dados money e smallmoney são precisos para um centésimo das unidades monetárias que representam.

Use um período 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.

Symbol Currency Valor hexadecimal
$ Sinal do dólar 0024
¢ Sinal de cêntimo 00A2
£ Sinal de libra 00A3
¤ Sinal de moeda 00A4
¥ Sinal de iene 00A5
Marca de rupia bengali 09F2
Sinal de rupia bengali 09F3
฿ Símbolo da moeda tailandesa Baht 0E3F
Símbolo da moeda Khmer Riel 17DB
Sinal da moeda euro 20A0
Sinal de dois pontos 20A1
Placa de Cruzeiro 20A2
Sinal de franco francês 20A3
Placa de lira 20A4
Placa do moinho 20A5
Placa de Naira 20A6
Sinal de Peseta 20A7
Sinal da rúpia 20A8
Won sign 20A9
Novo sinal de Sheqel 20AA
Sinal do Dong 20AB
Signo do euro 20AC
Sinal Kip 20AD
Sinal de Tugrik 20AE
Signo de dracma 20AF
Sinal Penny alemão 20B0
Sinal de peso 20B1
Signo de rial FDFC
Pequeno cifrão 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 Won de largura total FFE6

Não é necessário colocar dados monetários ou de moeda 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 apenas armazena o valor numérico.

Warning

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 de dinheiro ou moeda forem usados em cálculos. Em vez disso, use o tipo de dados decimal com pelo menos quatro casas decimais.

Converter dados de dinheiro

Quando você converte para moeda de tipos de dados inteiros, presume-se que as unidades estejam em unidades monetárias. Por exemplo, o valor inteiro de 4 é convertido para o moeda equivalente a 4 unidades monetárias.

O exemplo a seguir converte smallmoney e valores de de dinheiro em varchar e tipos de dados decimais, 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';

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

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