Announcement

Collapse
No announcement yet.

Betrag formatieren (money)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Betrag formatieren (money)

    Hallo Zusammen,

    ich sitze an einer Query, an der ich nicht so recht weiterkomme und hoffe nun auf eine Ideee, von euch.

    In einer Tabelle habe ich das Feld "Betrag", welche ich auch in der Query soweit richtig drin habe, jedoch passt die Formatierung nicht so recht.

    Mit : convert(nvarchar(20), cast(T0.Betrag as money),3) erhalte ich
    123.30 bzw. 2,345.81

    Das finde ich "unschön" und möchte lieber 123,30 und 2.345,81 dort stehen haben.

    Was mache ich falsch oder geht das nicht anders?

    Danke schonmal im voraus

    VG

    René

  • #2
    Das geht nicht so einfach, da der SQL-Server das amerikanische Format als Standard ansieht und das hat Dezimalpunkt und Komma vertauscht. Ich habe mir dafür mal eine UDF geschrieben, in der der Wert in einen String umgewandelt wird und dann werden Kommas und Punkte getauscht. Man darf aber nicht vergessen, dass das Ergebnis dann vom SQL-Server nicht mehr als gültige Zahl erkannt wird sondern nur mehr ein String ist. Das trifft einen gleich mal beim Sortieren und rechnen kann man damit natürlich auch nicht mehr (so einfach).

    bye,
    Helmut

    Comment


    • #3
      Dann ersetze doch einfach die Zeichen
      [HIGHLIGHT="SQL"]
      REPLACE (REPLACE (convert(nvarchar(20), cast(T0.Betrag as money),3) , ',', ''), '.', ',')[/HIGHLIGHT]

      Comment


      • #4
        hallo ebis,

        bis auf den "." bei der tausend klappt es

        er schreibt dann 2345,81

        wenn das ergebnis so "2.345,81" aussehen würde, wäre es perfekt

        danke & vg

        rené

        Comment


        • #5
          Originally posted by catao View Post
          hallo ebis,

          bis auf den "." bei der tausend klappt es

          er schreibt dann 2345,81

          wenn das ergebnis so "2.345,81" aussehen würde, wäre es perfekt

          danke & vg

          rené
          Na klar, der Komma wird ja auch durch nichts ersetzt...

          dann also erst Komma durch x ersetzen,
          dann Punkt durch Komma ersetzen,
          dann x durch Punkt ersetzen

          Comment


          • #6
            da stehe ich nun auf der leitung

            direkt in der db steht "2345.810000"

            durch "...AS money),3" kürze ich es und setze das ganze entsprechend.
            mit deiner anweisung wird der "." durch komma ersetzt, soweit verstanden. nur bei der tausender stelle steht in der db ja kein punkt, so das ich da einen "reinbringen" muss.

            die dezimalstelle wird ja korrekt durch ein "," ersetzt nur die tausender stelle wird ignoriert.

            geht es nicht oder stehe ich nur zu sehr auf dem schlauch ?

            Comment

            Working...
            X