J'essaie de comprendre le type de données décimal d'une colonne dans SQL Server. J'ai besoin de pouvoir stocker des valeurs comme 15,5, 26,9, 24,7, 9,8, etc.
J'ai attribué decimal(18, 0)
au type de données de colonne mais cela ne me permet pas de stocker ces valeurs.
Quel est le bon moyen de le faire?
sql
sql-server
types
decimal
Alex
la source
la source
decimal(4,2)
autorise 2 chiffres avant et 2 chiffres après le point décimal. "4.5" peut être stocké sans problème - et numériquement, "4.5" et "4.50" sont identiquesvarchar
pour stocker une valeur décimale !!Vous devez utiliser est la suivante:
m
est le nombre total de chiffres que peut contenir votre décimale.a
est le nombre maximum de chiffres que vous pouvez avoir après le point décimal.http://www.tsqltutorials.com/datatypes.php a des descriptions pour tous les types de données.
la source
Les paramètres pour
Decimal
sont sa précision et son échelle ou dans une langue normale, le nombre de chiffres qu'un nombre peut avoir et le nombre de chiffres que vous souhaitez avoir à droite de la virgule décimale.Donc, si vous mettez
PI
dans un,Decimal(18,0)
il sera enregistré comme3
?Si vous en mettez
PI
un,Decimal(18,2)
il sera enregistré comme3.14
?Si vous mettez
PI
enDecimal(18,10)
être enregistré comme3.1415926535
.la source
Pour la plupart du temps, j'utilise décimal (9,2) qui prend le moins de stockage (5 octets) en type décimal sql.
Précision => octets de stockage
Il peut stocker de 0 à 9 999 999,99 (7 chiffres devant + 2 chiffres derrière le point décimal = 9 chiffres au total), ce qui est assez grand pour la plupart des valeurs.
la source
Vous pouvez essayer ceci
La longueur des nombres doit être totalement 18. La longueur des nombres après la virgule décimale ne doit être que de 1 et pas plus.
la source
Dans MySQL DB
decimal(4,2)
permet de saisir seulement un total de 4 chiffres. Comme vous le voyezdecimal(4,2)
, cela signifie que vous pouvez saisir un total de 4 chiffres, dont deux sont destinés à être conservés après le point décimal.Donc, si vous entrez 100.0 dans la base de données MySQL, il affichera une erreur comme "Valeur hors plage pour la colonne".
Ainsi, vous ne pouvez entrer que dans cette plage: de 00,00 à 99,99.
la source
Les autres réponses sont bonnes. En supposant que vos exemples reflètent la gamme complète des possibilités que vous voulez
DECIMAL(3, 1)
. Ou,DECIMAL(14, 1)
permettra un total de 14 chiffres. C'est votre travail de penser à ce qui est suffisant.la source
la source