Share via


money et smallmoney (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Types de données représentant des valeurs monétaires ou des devises.

Notes

Type de données Plage Stockage
money -922 337 203 685 477,5808 à 922 337 203 685 477,5807 (-922 337 203 685 477,58
à 922 337 203 685 477,58 pour Informatica. Informatica prend uniquement en charge deux décimales, et non quatre.)
8 octets
smallmoney -214 748 3648 à 214 748 3647 4 octets

Les types de données money et smallmoney sont précis à un dix millième près des unités monétaires qu’ils représentent. Pour Informatica, les types de données money et smallmoney sont précis à un centième près des unités monétaires qu’ils représentent.

Utilisez un point pour séparer les unités monétaires partielles, comme les centimes, des unités monétaires entières. Par exemple, 2.15 spécifie 2 dollars et 15 cents.

Ces types de données peuvent utiliser n'importe lequel des symboles monétaires suivants.

Symbole Devise Valeur hexadécimale
$ Signe dollar 0024
¢ Signe cent 00A2
£ Signe livre 00A3
¤ Signe monétaire 00A4
¥ Signe yen 00A5
Marque de Rupee bengali 09F2
Signe Rupee bengali 09F3
฿ Symbole monétaire thaïlandais 0E3F
Symbole monétaire khmère Riel 17DB
Signe monétaire euro 20A0
Signe deux-points 20A1
Signe Cruzeiro 20A2
signe franc Français 20A3
£ Signe Lira 20A4
Signe de moulin 20A5
Signe Naira 20A6
Signe Peseta 20A7
Rs Signe Rupee 20A8
Signe gagné 20A9
Nouveau signe sheqel 20AA
Signe Dong 20AB
Signe Euro 20AC
Signe Kip 20AD
Signe tugrik 20AE
Signe Drachma 20AF
Signe Penny allemand 20B0
Signe peso 20B1
Signe Rial FDFC
Signe dollar petit FE69
Signe Dollar de pleine largeur FF04
¢ Signe Cent de pleine largeur FFE0
£ Signe livre pleine largeur FFE1
¥ Signe Yen pleine largeur FFE5
Signe Won de pleine largeur FFE6

Vous n’avez pas besoin de placer les données monétaires ou monétaires entre guillemets simples ('). Bien que vous puissiez spécifier des valeurs monétaires précédées d’un symbole monétaire, SQL Server ne stocke aucune information monétaire associée au symbole, mais stocke uniquement la valeur numérique.

Avertissement

Vous pouvez rencontrer des erreurs d’arrondi par troncation, lors du stockage des valeurs monétaires en tant qu’argent et smallmoney. Évitez d’utiliser ce type de données si vos valeurs monétaires ou monétaires sont utilisées dans les calculs. Utilisez plutôt le type de données décimal avec au moins quatre décimales.

Convertir des données d’argent

Lors de la conversion de types de données integer en money, les unités sont supposées être des unités monétaires. Par exemple, la valeur entière de celle-ci 4 est convertie en l’équivalent monétaire de 4 unités monétaires.

L’exemple suivant convertit les valeurs smallmoney et money respectivement en types de données varchar et decimal.

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';

Voici le jeu de résultats obtenu. Étant donné que le type décimal dans l’exemple n’a pas d’échelle, la valeur est tronquée.

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