SQL-server integer vs decimal SUM
Dies ist wahrscheinlich eine Anfänger Frage, aber...ich arbeite an einer db in SQSH und es war vom Typ Ganzzahl Werte large (Bevölkerung Attribut). Wenn ich wollte, diese Summe bekam ich einen Arithmetik-überlauf Ausnahme. Dann warf ich die Werte Dezimal und alles war OK (kein überlauf). Aber überall lese ich, sagt Sie, dass Integer und Decimal sind die gleiche Sache. Also, warum ist das passiert ?
Vielen Dank im Voraus
- INT und DECIMAL sind nicht das gleiche mit allen Mitteln. Ich bin mir nicht sicher, was Sie gelesen habe. Starten Sie hier... msdn.microsoft.com/en-us/library/aa258271%28v=sql.80%29.aspx
- Vielen Dank für die Antworten!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen integer-Typ ist ein 4-byte-Zahl, die so hoch ist, wie 2,147,483,647. Eine Dezimalzahl kann, gehen wesentlich höher. Sowohl gespeichert als ganze zahlen, aber die dezimalen erlaubt wird, einen Wert zu repräsentieren Ziffern hinter dem Dezimalzeichen. Sie können auch BIGINT (9,223,372,036,854,775,807) anstelle von integer.
Haben Sie eine
decimal
Datentyp, die Genauigkeit und die Skala, die größer ist als die max Grenze desint
Datentyp. Zum Beispieldecimal(18, 0)
haben eine größere Kapazität alsint
(die tops aus bei2147483647
).Gewährt,
int
dauert nur bis zu 4 bytes und man kann nicht Weg mit mehr Speicherplatz Verbrauch mit so etwas wiedecimal(18, 0)
. Aber es bringt Sie um die max Grenzeint
.Aus Der Onlinedokumentation
decimal und numeric
int, bigint, smallint und tinyint
So, Dezimalzahlen speichern können, viel mehr Wert als Int.