Bester Datentyp zum Speichern von Geldwerten in MySQL

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)?

Lösung

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)
  • 15" ist die Genauigkeit (Gesamtlänge des Wertes einschließlich der Dezimalstellen)
  • 2" ist die Anzahl der Ziffern nach dem Dezimalpunkt

Siehe MySQL Numerische Typen:

Diese Typen werden verwendet, wenn es wichtig ist, die exakte Genauigkeit zu erhalten, zum Beispiel bei Gelddaten.

Kommentare (5)

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)

Gute Lektüre

Kommentare (4)

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.

Kommentare (2)