Compartir vía


money y smallmoney (Transact-SQL)

Aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Analítica (PDW)Base de datos SQL en Microsoft Fabric

Tipos de datos que representan valores monetarios o de moneda.

Remarks

Tipo de dato Range 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.

Symbol Currency Valor hexadecimal
$ Signo de dólar 0024
¢ Signo de centavo 00A2
£ Signo de la 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
Cartel de Cruzeiro 20A2
Firmar franco francés 20A3
Signo de lira 20A4
Cartel del molino 20A5
Cartel de naira 20A6
Signo de Peseta 20A7
Signo de rupia 20A8
Signo de ganador 20A9
Nuevo signo sheqel 20AA
Cartel Dong 20AB
Signo del euro 20AC
Signo Kip 20AD
Señal de Tugrik 20AE
Signo de dracma 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.

Warning

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