Ich möchte viele Datensätze in einer MySQL-Datenbank speichern. Alle von ihnen enthalten Geldwerte. Aber ich weiß nicht, wie viele Ziffern werden für jeden einzelnen eingefügt werden.
Welchen Datentyp muss ich für diesen Zweck verwenden?
VARCHAR oder INT (oder andere numerische Datentypen)?
Da Geld eine exakte Darstellung benötigt, sollten Sie keine Datentypen verwenden, die nur ungefähr sind, wie z.B. "Float". Sie können dafür einen numerischen Festkomma-Datentyp verwenden wie
decimal(15,2)
Siehe MySQL Numerische Typen:
Diese Typen werden verwendet, wenn es wichtig ist, die exakte Genauigkeit zu erhalten, zum Beispiel bei Gelddaten.
Sie können DECIMAL
oder NUMERIC
verwenden, beide sind gleich
Die Typen DECIMAL und NUMERIC speichern exakte numerische Datenwerte. Diese Typen werden verwendet, wenn es wichtig ist, die exakte Genauigkeit zu bewahren, zum Beispiel bei monetären Daten. In MySQL ist NUMERIC als DECIMAL implementiert, daher gelten die folgenden Bemerkungen über DECIMAL auch für NUMERIC: MySQL
d.h. DECIMAL(10,2)
Das hängt von Ihrem Bedarf ab.
Die Verwendung von DECIMAL(10,2)
ist normalerweise ausreichend, aber wenn Sie etwas genauere Werte benötigen, können Sie DECIMAL(10,4)
verwenden.
Wenn Sie mit großen Werten arbeiten, ersetzen Sie 10
durch 19
.