money y smallmoney (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Tipos de datos que representan valores monetarios o de moneda.
Observaciones
Tipo de datos | Intervalo | Storage |
---|---|---|
money | De -922.337.203.685.477,5808 a 922.337.203.685.477,5807 (de -922.337.203.685.477,58 a 922.337.203.685.477,58 en el caso de Informatica. Informatica admite únicamente dos decimales, no cuatro). |
8 bytes |
smallmoney | De -214.748,3648 a 214.748,3647 | 4 bytes |
Los tipos de datos money y smallmoney tienen una precisión de una diezmilésima de las unidades monetarias que representan. En Informatica, los tipos de datos money y smallmoney tienen una precisión de una centésima de las unidades monetarias que representan.
Use un punto para separar las unidades parciales de moneda, como céntimos, de las unidades completas de moneda. Por ejemplo, 2.15
especifica 2 dólares y 15 centavos.
Estos tipos de datos pueden usar alguno de los siguientes símbolos de moneda.
Símbolo | Moneda | Valor hexadecimal |
---|---|---|
$ | signo de dólar | 0024 |
¢ | Signo cent | 00A2 |
£ | Signo de libra | 00A3 |
¤ | Signo de moneda | 00A4 |
¥ | Signo de Yen | 00A5 |
৲ | Marca de rupia bengalí | 09F2 |
৳ | Signo de rupia bengalí | 09F3 |
฿ | Símbolo de moneda tailandés Baht | 0E3F |
៛ | Símbolo de moneda khmer Riel | 17DB |
₠ | Signo de moneda del euro | 20A0 |
₡ | Signo de dos puntos | 20A1 |
₢ | Signo de Cruzeiro | 20A2 |
₣ | Firmar franco francés | 20A3 |
₤ | Signo de Lira | 20A4 |
₥ | Símbolo del molino | 20A5 |
₦ | Signo de Naira | 20A6 |
₧ | Signo peseta | 20A7 |
Rs | Signo de rupia | 20A8 |
₩ | Signo ganado | 20A9 |
₪ | Nuevo signo sheqel | 20AA |
₫ | Signo Dong | 20AB |
€ | Euro sign | 20AC |
₭ | Signo de Kip | 20AD |
₮ | Signo de Tugrik | 20AE |
₯ | Signo drachma | 20AF |
₰ | Signo de Penny alemán | 20B0 |
₱ | Signo de peso | 20B1 |
﷼ | Signo de Rial | FDFC |
﹩ | Signo de dólar pequeño | FE69 |
$ | Signo de dólar de ancho completo | FF04 |
¢ | Signo cent de ancho completo | FFE0 |
£ | Signo de libra de ancho completo | FFE1 |
¥ | Signo de Yen de ancho completo | FFE5 |
₩ | Signo Won de ancho completo | FFE6 |
No es necesario incluir datos monetarios o de moneda entre comillas simples ('
). Aunque puede especificar valores monetarios precedidos por un símbolo de moneda, SQL Server no almacena ninguna información de moneda asociada al símbolo, solo almacena el valor numérico.
Advertencia
Puede experimentar errores de redondeo a través del truncamiento, al almacenar valores monetarios como money y smallmoney. Evite usar este tipo de datos si se usan los valores money o currency en los cálculos. En su lugar, use el tipo de datos decimal con al menos cuatro posiciones decimales.
Conversión de datos de dinero
Cuando se convierte a money desde tipos de datos enteros, se supone que las unidades están en unidades de moneda. Por ejemplo, el valor entero de 4
se convierte en el equivalente monetario de 4 unidades monetarias.
En el siguiente ejemplo se convierten valores smallmoney y money a tipos de datos varchar y 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 es el conjunto de resultados. Dado que el tipo decimal del ejemplo no tiene una escala, el valor se trunca.
SM_MONEY VARCHAR(20) MONEY DECIMAL
------------------------------ ----------------------
3148.29 3148