Partilhar via


dinheiro e dinheiro pequeno (Transact-SQL)

Aplica-se a:Banco de Dados SQL do SQL dodo AzureInstância Gerenciada SQL do Azuredo Azure Synapse Analyticsdo Analytics Platform System (PDW)banco de dados SQL no Microsoft Fabric

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

Comentários

Tipo de dados Gama Armazenamento
dinheiro -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
dinheiro pequeno -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.

Símbolo Moeda Valor hexadecimal
$ Cifrão 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 cólon 20A1
Cruzeiro assina 20A2
Sinal de franco francês 20A3
Signo de Lira 20A4
Sinal do moinho 20A5
Sinal de Naira 20A6
Sinal de Peseta 20A7
O Sinal de rupia 20A8
Sinal de vitória 20A9
Novo sinal de Sheqel 20AA
Sinal de Dong 20AB
Símbolo do euro 20AC
Sinal de Kip 20AD
Sinal de Tugrik 20AE
Sinal de Drachma 20AF
Sinal Penny alemão 20B0
Sinal de peso 20B1
Sinal 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.

Advertência

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