Discussion:
mysql Datenfeld-typ decimal und komma?
(zu alt für eine Antwort)
Achim Altmann
2004-10-06 12:29:57 UTC
Permalink
Hallo,

wenn ich Währungen oder ein Gewicht z.B 2,00 in ein mysql-db-feld mit dem
typ decimal abspeichere dann wird das in 2.00 also mit einem punkt
abgespeichert.

Gibt es hierfür eine bessere Lösung oder muss ich dies dann immer mit meinem
php-script umwandeln beim auslesen?

Gruss und danke

Achim
Tobias Kutzler
2004-10-06 12:54:55 UTC
Permalink
Post by Achim Altmann
Hallo,
wenn ich Währungen oder ein Gewicht z.B 2,00 in ein mysql-db-feld mit dem
typ decimal abspeichere dann wird das in 2.00 also mit einem punkt
abgespeichert.
Hallo Achim,

im englischen sind Dezimalzahlen immer mit einem Punkt getrennt. Das
Komma wird als Tausendertrennzeichen genutzt. D.h., dass kann mal ganz
schnell in die Hose gehen, wenn man den Wert 2,000 einfach so in die
Datenbank einträgt. Da steht dann plötzlich 2000 drin.
Es gibt auch noch ein weiteres Problem:
Ich möchte die Zahlen 2 und 3 einfügen:
INSERT INTO table(value1, value2) VALUES(2, 3)
Kein Problem!
Ich möchte jetzt die Zahlen 2,5 und 3,4 einfügen:
INSERT INTO table(value1, value2) VALUES(2,5, 3,4)

Siehst Du das Problem? Das Komma wird in SQL-Statements als Trenner
zwischen den einzelnen Werten der Spalten genutzt. Wenn eine Zahl als
Dezimalzeichen das Komma enthält, denkt der SQL Server es wären im
obigen Fall 4 unterschiedliche Zahlen und meckert, dass doch nur 2
Spalten angegeben sind.
Post by Achim Altmann
Gibt es hierfür eine bessere Lösung oder muss ich dies dann immer mit meinem
php-script umwandeln beim auslesen?
Das sollte Dir bei Deinem Problem bestens helfen:
number_format()
http://de.php.net/manual/de/function.number-format.php
Post by Achim Altmann
Gruss und danke
Achim
HTH und Ciao,
Tobias :-)
Achim Altmann
2004-10-06 14:18:39 UTC
Permalink
Hi,

vielen Dank für die sehr ausführliche Antwort
Post by Tobias Kutzler
Post by Achim Altmann
Gibt es hierfür eine bessere Lösung oder muss ich dies dann immer mit meinem
php-script umwandeln beim auslesen?
number_format()
http://de.php.net/manual/de/function.number-format.php
Funktioniert bestens

Gruss Achim

Loading...