Share via


money y smallmoney (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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';

El conjunto de resultados es el siguiente: Dado que el tipo decimal del ejemplo no tiene una escala, el valor se trunca.

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