Int zu decimal umwandeln, Preise?
hawkmaster
- datenbank
0 pgoetz0 hawkmaster0 Struppi
1 dedlfix
Hallo zusammen,
in einer MySQL Datenbank die ich nicht erstellt hatte, gibt es eine Spalte "Preise" die als "int" definiert wurde.
Bisher stehen hier Preise wie 245, 12300, 5000 usw. drin.
Da es jetzt die Anforderung gibt, dass auch Kommabeträge angezeigt werden sollen, möchte ich die Spalte auf "decimal" (5,2) umwandeln.
Bei einem ersten Versuch stellte ich nun fest, dass fast alle Zeilen nun den Wert 999,00 angenommen haben. Es wurde also der alte Betrag irgendwie umgeändert.
Warum passiert sowas?
Warum wird nicht aus 5000 => 500.00 oder aus 245 245.00?
Muss ich nach der Umwandlung wirklich alle Beträge von Hand wieder ändern?
vielen Dank und viele Grüße
hawk
[...]
Bei einem ersten Versuch stellte ich nun fest, dass fast alle Zeilen nun den Wert 999,00 angenommen haben. Es wurde also der alte Betrag irgendwie umgeändert.
Warum passiert sowas?
Warum wird nicht aus 5000 => 500.00 oder aus 245 245.00?
Das kommt darauf an, wie Du die Umwandlung gemacht hast. Mit einem ALTER TABLE dürfte das nicht passieren, obwohl ich sowas noch nicht für Ganzzahltyp auf Fließkommatyp gemacht habe.
Mit welchen SQL Kommandos hast Du denn gearbeitet?
Peter
Hallo Peter
danke für deine Hilfe.
Mit welchen SQL Kommandos hast Du denn gearbeitet?
ich habe es einfach in PhpMyAdmin versucht.
vielen Dank und viele Grüße
hawk
Mit welchen SQL Kommandos hast Du denn gearbeitet?
ich habe es einfach in PhpMyAdmin versucht.
Und dort steht welches Kommando ausgeführt wurde.
Struppi.
Hi!
Da es jetzt die Anforderung gibt, dass auch Kommabeträge angezeigt werden sollen, möchte ich die Spalte auf "decimal" (5,2) umwandeln.
Du bist sicher, dass XXX.XX reicht, also nur Preise bis 999.99 Währungseinheiten benötigt werden? Die erste Zahl beim DECIMAL-Typ gibt die Gesamtlänge inklusive Nachkommastellen an.
Bei einem ersten Versuch stellte ich nun fest, dass fast alle Zeilen nun den Wert 999,00 angenommen haben. Es wurde also der alte Betrag irgendwie umgeändert.
Was genau hast du gemacht? Und bitte ein paar reale Beispiele, was wirklich wie umgewandelt wurde.
Lo!
Hallo dedlfix,
Du bist sicher, dass XXX.XX reicht, also nur Preise bis 999.99 Währungseinheiten benötigt werden? Die erste Zahl beim DECIMAL-Typ gibt die Gesamtlänge inklusive Nachkommastellen an.
Ja ich glaube das war der Knackpunkt. Ich dachte 5,2 bedeuten vor dem Punkt 5 Stellen und zwei Nachkommastellen.
vielen Dank und viele Grüße
hawk