web-dev-qa-db-fra.com

ce qui est numérique (18, 0) dans le serveur SQL 2008 R2

J'ai trouvé une table avec cette colonne de ce type de données

numeric(18, 0)

qu'est-ce que c'est s'il vous plaît? et pourquoi est-ce que 0 et 18 signifier

J'ai déjà vérifié cette question Différence entre numérique, float et décimal dans SQL Server mais je ne pouvais pas le comprendre. \

puis-je ajouter (-10) dans cette colonne?

puis-je ajouter tous les nombres négatifs dans cette colonne?

puis-je ajouter un nombre positif dans cette colonne?

Mise à jour 1

Ceci est un échantillon des données que j'ai trouvé dans cette colonne

100
263
13
2
9
4
3
3
28
15
33
16
135
50
64
60
100
500
150

Mise à jour 2 Est-il possible d'avoir - et +?

39
Agnieszka Polec

La première valeur est la précision et la seconde est l'échelle , donc 18,0 est essentiellement composé de 18 chiffres avec 0 chiffre après la décimale. Si tu avais 18,2 _ par exemple, vous auriez 18 chiffres, dont deux suivraient la décimale ...

exemple de 18,2: 1234567890123456.12

Il n'y a pas fonctionnelle différence entre numeric et decimal, autre que le nom et je pense me rappeler que numérique est venu d'abord, comme dans une version antérieure.

Et pour répondre, " puis-je ajouter (-10) dans cette colonne? " - Oui, vous le pouvez.

64
christiandev

Cette page l'explique assez bien.

En tant que numeric, la plage autorisée pouvant être stockée dans ce champ est comprise entre -10^38 +1 Et 10^38 - 1.

Le premier nombre entre parenthèses est le nombre total de chiffres qui seront stockés. Compter les deux côtés de la décimale. Dans ce cas 18. Donc, vous pourriez avoir un nombre avec 18 chiffres avant la virgule 18 chiffres après la virgule ou une combinaison des deux.

Le deuxième nombre entre parenthèses est le nombre total de chiffres à enregistrer après la virgule. Comme dans ce cas, le nombre est 0, cela signifie que seuls les nombres entiers peuvent être stockés dans ce champ.

Ainsi, la plage pouvant être stockée dans ce champ particulier est -(10^18 - 1) à (10^18 - 1)

Ou -999999999999999999 À 999999999999999999 Entiers uniquement

18
Dan