2013-10-05 16 views
9

Ich habe ein paar Werte, die von einem Server kommen, die in meiner Datenbank gespeichert werden müssen. Ich bin kein MySQL-Experte, aber ich verstehe es gut genug für grundlegende Eingabe/Ausgabe. Im Moment versuche ich herauszufinden, welche Länge ich beim Speichern der folgenden Dezimalzahlen verwenden soll.MySQL: Größe des Dezimal-Datentyps

Ich hoffe, jemand könnte die richtige Datenlänge vorschlagen, die ich für diese Werte verwenden muss, wie gut erklären, warum sie die Werte gewählt haben. Oder verlinken Sie vielleicht auf einen Artikel, der die Dezimalstellen von MySQL erklärt.

Jede Hilfe wäre willkommen.

Vielen Dank!

------- bearbeiten --------

Nachdem die MySQL-Dokumentation zu lesen, das ist, was ich die folgenden Dezimalstellen aufgelöst haben Längen sein:

tax_rate [DECIMAL 15,12]: value(0.014840000000) ? max(999.999999999999) 
units [DECIMAL 6,2]: value(1.00) ? max(9999.99) 
initial_charge [DECIMAL 9,4]: value(2.5110) ? max(99999.9999) 
charge [DECIMAL 9,4]: value(2.8967) ? max(99999.9999) 
link_tax [DECIMAL 9,6]: value(0.385652) ? max(999.999999) 
exempt [DECIMAL 9,4]: value(0.0000) ? max(9999.9999) 
tax [DECIMAL 10,6]: value(0.042986) ? max(999999.999999) 
base_price [DECIMAL 10,4]: value(41.8500) ? max(999999.9999) 
+3

Im Detail: offizielle Dokumente unter http://dev.mysql.com/doc/refman/5.0/en/fixed-point-types.html – Amadan

Antwort

22

Von MySQL:

Die Erklärung Syntax für eine DECIMAL Spalte DECIMAL (M, D). Die Wertebereiche für die Argumente in MySQL 5.1 sind wie folgt:

M ist die maximale Anzahl der Ziffern (die Genauigkeit). Es hat einen Bereich von 1 bis 65. (Ältere Versionen von MySQL erlaubt einen Bereich von 1 bis 254.)

D ist die Anzahl der Stellen rechts vom Dezimalpunkt (die Skala). Es hat einen Bereich von 0 bis 30 und darf nicht größer als M.

Betrachten Sie diese Nummer: 123.456.789,12345 hier M ist 14 und D ist 5 dann auf diesem Prinzip beruhen Sie festlegen können DECIMALS (M, D) jede Spalte basiert auf ihren erwarteten maximalen Werten.

+1

Awesome. Das fasst es im Grunde zusammen ... Ich werde meinen Beitrag bearbeiten, um die richtigen Werte zu reflektieren. – user0000001

+0

Also der Dezimalpunkt ist nicht in der M enthalten - richtig? – zonabi