Post by Irmgard SchwenteckPost by Andreas ScherbaumPost by Axel SchwenkePost by Werner KnappIch möchte lediglich einen Zahlenwert in einem halbwegs
vernünftigen deutschen Format darstellen wie es andere
Datenbanken auch können, z.B. 1.425,76 EUR.
Ich kenne keine Datenbank, die das macht.
Das sagt nichts aus, wenn du keine kennst.
Dann nenn doch mal eine. Weder Oracle noch MS-SQL machen das. Wozu auch.
Lies mal ein paar Antworten weiter oben nach, es wurden sogar
Beispiele für Datenbanken gebracht, die das können.
Btw, auch Oracle kennt to_number() zum Formatieren ...
Post by Irmgard SchwenteckPost by Andreas ScherbaumPost by Axel SchwenkeFormatierung der Daten ist Aufgabe der Applikation, nicht der Datenbank.
Wo steht das denn geschrieben?
[...]
Du hast *eine* Datenbank und verschiedene Client-Applikationen, die
darauf zugreifen. Diese bringen ihre eigenen Mechanismen mit, die Daten
formatiert auszugeben.
Du hast auch öfter mal *eine* Datenbank und *einen* Client.
Oder auch mal die Anforderung, das immer die gleichen Teilmengen deiner
Daten gesucht werden (Substring, Umrechnung in bestimmte Formate ect.).
Gerade in zweitem Fall wäre es unvernünftig, für jede Clientanwendung
den Code zum Formatieren neu zu schreiben.
Das dies im konkreten Fall des OP nun sowohl datenbankseitig wie auch
clientseitig erledigt werden kann, spricht nicht dafür, das man jede
Art von Formatierung immer clientseitig erledigt.
Post by Irmgard SchwenteckPost by Andreas ScherbaumUnd warum bietet dann Mysql (und jede andere Datenbank) einen Haufen
Funktionen, um Daten umzuformatieren und anders darzustellen?
Klar kannst Du mit diversen Stringfunktionen eine Ausgabe wie '1000,00
EUR' erzeugen.
Aber Du hast dann eben einen String als Ergebnis.
Und dann versuch mal z.B. mit PHP mit diesen Daten weiterzurechnen oder
solche Ausgabe zu sortieren.
Dann ist '50' nämlich größer als '100'.
Du verwechselst hier etwas.
Entweder ich suche einen String oder ich suche einen Zahlenwert.
Auch in PHP kann ich mit '1000,00 EUR' nicht weiter rechnen, wenn ich
mir den Wert einmal zurechtformatiert habe.
Wenn du in deinem Code die Anforderung hast, das an der Stelle der
Wert fertig formatiert ist, dann rechnest du später nicht mehr mit
diesem Wert.
Abgesehen davon, das Wert und Einheit im Idealfall aus zwei verschiedenen
Spalten oder gar Tabellen kommen und somit auch getrennt ausgegeben
werden können.
Post by Irmgard SchwenteckPost by Andreas ScherbaumNur das Mysql hier nichts passendes kennt, heisst nicht, das man
ganz allgemein nicht eine Menge Formatierung gleich in der DB
erledigen kann.
*in* der Datenbank? D.h. Du willst die Dezimalzahl 1000,00 lieber als
String '1000,00 EUR' abspeichern?
"in" as in: beim Abfragen der Daten. Ich dachte, soweit wäre das
klar gewesen, aber offensichtlich nicht.
Wert und Einheit in einer Spalte sind nicht sehr normalisiert
und lassen sich auch schlecht weiterverarbeiten.
Bye
--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)