money e smallmoney (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
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 do iene | 00A5 |
৲ | Marco da rupia bengali | 09F2 |
৳ | Sinal de rupia bengali | 09F3 |
฿ | Símbolo da moeda do baht tailandês | 0E3F |
៛ | Símbolo da moeda Khmer Riel | 17DB |
₠ | Sinal da moeda do euro | 20A0 |
₡ | Sinal do 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 |
RS | Sinal de rúpia | 20A8 |
₩ | Sinal de won | 20A9 |
₪ | Novo sinal Shekel | 20AA |
₫ | Sinal de dong | 20AB |
€ | Sinal do euro | 20AC |
₭ | Sinal de Kip | 20AD |
₮ | Sinal de Tugrik | 20AE |
₯ | Sinal de dracma | 20AF |
₰ | Sinal alemão da moeda de um centavo | 20B0 |
₱ | Sinal de peso | 20B1 |
﷼ | Sinal de Rial | FDFC |
﹩ | Sinal de dólar pequeno | FE69 |
$ | Sinal de dólar 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 a moeda ou os 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 por meio 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 monetários
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';
Veja a seguir 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