Partager via


money et smallmoney (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Base de données SQL dans Microsoft Fabric

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

Remarks

Type de données Range Storage
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.

Symbol Currency Valeur hexadécimale
$ Signe dollar 0024
¢ Signe de cent 00A2
£ Signe de livre 00A3
¤ Signe monétaire 00A4
¥ Signe du 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 des deux-points 20A1
Panneau Cruzeiro 20A2
Signe franc français 20A3
Enseigne de lira 20A4
Panneau de moulin 20A5
Panneau Naira 20A6
Panneau Peseta 20A7
Signe de roupie 20A8
Signe gagné 20A9
Nouveau signe sheqel 20AA
Panneau Dong 20AB
Signe de l’euro 20AC
Signe Kip 20AD
Panneau Tugrik 20AE
Signe de dracma 20AF
Signe Penny allemand 20B0
Panneau 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.

Warning

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. É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