Ich versuche, den dezimalen Datentyp einer Spalte in SQL Server herauszufinden. Ich muss in der Lage sein, Werte wie 15,5, 26,9, 24,7, 9,8 usw. Zu speichern
Ich decimal(18, 0)
habe den Spaltendatentyp zugewiesen , kann diese Werte jedoch nicht speichern.
Was ist der richtige Weg, um dies zu tun?
sql
sql-server
types
decimal
Alex
quelle
quelle
decimal(4,2)
Ermöglicht 2 Stellen vor und 2 Stellen nach dem Dezimalpunkt. "4.5" kann problemlos gespeichert werden - und numerisch sind "4.5" und "4.50" identischvarchar
, um einen Dezimalwert zu speichern !!Sie sollten Folgendes verwenden:
m
ist die Anzahl der Gesamtziffern, die Ihre Dezimalstelle haben kann.a
ist die maximale Anzahl von Stellen nach dem Dezimalpunkt.http://www.tsqltutorials.com/datatypes.php enthält Beschreibungen für alle Datentypen.
quelle
Die Einstellungen für
Decimal
sind Genauigkeit und Skalierung oder in normaler Sprache, wie viele Stellen eine Zahl haben kann und wie viele Stellen Sie rechts vom Dezimalpunkt haben möchten.Also, wenn Sie
PI
in eine setzenDecimal(18,0)
, wird es als aufgezeichnet3
?Wenn Sie
PI
in eine setzenDecimal(18,2)
, wird es als aufgezeichnet3.14
?Wenn Sie
PI
inDecimal(18,10)
aufgenommen werden als3.1415926535
.quelle
Die meiste Zeit verwende ich Dezimal (9,2), was den geringsten Speicherplatz (5 Byte) im SQL-Dezimaltyp beansprucht.
Präzision => Speicherbytes
Es kann von 0 bis 9 999 999,99 (7 Stellen vor + 2 Stellen hinter dem Dezimalpunkt = insgesamt 9 Stellen) gespeichert werden, was für die meisten Werte groß genug ist.
quelle
Sie können dies versuchen
Die Länge der Zahlen sollte insgesamt 18 betragen. Die Länge der Zahlen nach dem Dezimalpunkt sollte nur 1 und nicht mehr betragen.
quelle
In MySQL DB
decimal(4,2)
können nur insgesamt 4 Ziffern eingegeben werden. Wie Sie in sehendecimal(4,2)
, bedeutet dies, dass Sie insgesamt 4 Ziffern eingeben können, von denen zwei Ziffern nach dem Dezimalpunkt bleiben sollen.Wenn Sie also 100.0 in die MySQL-Datenbank eingeben, wird ein Fehler wie "Wert außerhalb des Bereichs für Spalte" angezeigt.
Sie können also nur in diesen Bereich eingeben: von 00.00 bis 99.99.
quelle
Die anderen Antworten sind richtig. Angenommen, Ihre Beispiele spiegeln die gesamte Bandbreite der gewünschten Möglichkeiten wider
DECIMAL(3, 1)
. OderDECIMAL(14, 1)
erlaubt insgesamt 14 Ziffern. Es ist Ihre Aufgabe, darüber nachzudenken, was genug ist.quelle
quelle