SQL: Zahlen in lokalem Format

Problem Darstellung eines Ergebnisses per T-SQL möchte man gelegentlich unterschiedlich formatieren.
Speziell bei „Datum“ und „Zahlen“ hat man ständig mit Problemen.
Beispiel im SQL hat man ständig Werte wie „9999.99 aber im deutschem Excel wird nicht als 9.999,99“ verstanden und muss ständig mit hohem Zeitaufwand im Excel als „Text“ eingelesen und dann werden bei den betroffenen Spalten erst Punkt in Komma gewandelt und dann müsse die Spalten in die richtige Formate gebracht werden.
Bei DATUM lässt sich das in einer T-SQL Abfrage mit einem einfachen „SET“-Kommando anpassen. Leider gibt’s bisher keine einfache Lösung bei Microsoft.
Daher hilft möglicherweise der „FORMAT“-Befehl…

SELECT
    -- c => currency
    -- n => numeric
    FORMAT(987654321, N'N', C.culture) AS some_number
,   FORMAT(987654321, N'c', C.culture) AS some_currency
,   C.culture
FROM
    (
        -- Language culture names
        -- http://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx
        VALUES
            ('en-US')
        ,   ('en-GB')
        ,   ('de-DE')
    ) C (culture);

Select FORMAT(987654321, N'N', 'de-DE') AS some_number

Quelle: https://stackoverflow.com/questions/4377352/how-do-i-format-a-number-with-commas-in-t-sql

Print Friendly, PDF & Email