Komma - Punkt Problem (Dezimalzahlen)



  • Meine dezimalzahlen werden in der Datenbank mit einem Beistrich als Trennzeichen gespeichert. (Ich speichere die Zahlen in einem String, daher ist der Fehler vermutlich erst jetzt aufgetreten.)

    Jetzt wollte ich mit SUM eben diese Zahlen summieren und auslesen. Und bei den Zahlen die ein Komma verwenden bekomme ich sonderbare Lösungen. (Bei reinen int zahlen gehts).

    Kann ich meiner (firebird) Datenbank sagen das ich ',' statt '.' verwende, oder gibt es irgendeine andere methode dafür?

    (Wenn es nichts hilft werd ich mir wohl alle daten auslesen müssen und dann im c code summieren.)



  • Ich weiß nicht genau, ob es für Firebird so eine Methode gibt.

    In MS-SQL-Server heißt sie Replace.

    select REPLACE('20,20',',','.')
    

    = ersetze Char ',' durch Char '.'



  • Hm. Am liebsten wäre es mir die daten in der datenbank so belassen könnte.

    Und täusche ich mich oder würde ich so nicht auch bei ganz anderen Strings , durch . ersetzten? (Was ich auf keinen fall will)



  • speicher doch den code als varchatr und nicht double



  • Dann hast Du das Kommando nicht verstanden!

    Es ändert nicht die Werte in der DB, sondern die Werte in der Ergebnismenge des Select's. Beim Speichern solltest Du diese Konvertierung dann natürlich auch wieder anders herum durchführen!


Anmelden zum Antworten