V PostgreSQL můžeme použít TO_CHAR() funkce pro formátování čísel v daném formátu. To zahrnuje formátování čísel s čárkami v příslušném umístění.
PostgreSQL má také money datový typ, který vypíše hodnotu pomocí aktuálního národního prostředí. To může zahrnovat čárky na příslušném místě podle používaného národního prostředí.
TO_CHAR() Funkce
Zde je příklad použití TO_CHAR() funkce pro výstup čísla s čárkami:
SELECT TO_CHAR(123456.78, 'fm999G999D99'); Výsledek:
123,456.78
Druhý argument se skládá z řady vzorů číselných šablon, které určují, jak je formátován první argument.
Zde jsem použil G vzor šablony pro oddělovač skupin s ohledem na národní prostředí (také označovaný jako „oddělovač tisíců“). Mohl jsem použít čárku (, ), ale to by neznal národní prostředí.
Také jsem použil D vzor šablony pro oddělovač desetinných míst s ohledem na národní prostředí.
V tomto případě jsem také použil fm (což znamená “Fill Mode”) pro potlačení všech koncových nul a úvodních mezer, které mohly být automaticky použity na výsledek.
9 vzor šablony je pro každou číslici. Můžete použít 0 místo toho, pokud chcete zahrnout úvodní nuly.
Protože G a D vzory šablon jsou s ohledem na národní prostředí, jsou schopny vytvořit vhodný znak pro skupinu a oddělovače desetinných míst.
Zde je příklad, který demonstruje, co tím myslím:
SET lc_numeric = 'fr_FR';
SELECT TO_CHAR(123456.78, 'fm999G999D99'); Výsledek:
123,456.78
Nyní je oddělovač skupiny reprezentován tečkou/tečkou a desetinný oddělovač je reprezentován čárkou. Je to proto, že jsem změnil lc_numeric proměnnou pro použití fr_FR (pro Francii) a je francouzským zvykem mít svůj oddělovač skupiny a desetinnou čárku reprezentován tímto způsobem.
Různá národní prostředí mají různé konvence pro formátování čísel a G a D modifikátory formátu jsou schopny určit, které znaky se mají použít pro oddělovače skupin a desetinný oddělovač.
money Typ dat
PostgreSQL má money datový typ, který vydává své hodnoty formátované způsobem s ohledem na národní prostředí.
Příklad:
SET lc_monetary = 'en_US';
SELECT CAST(123456.78 AS money); Výsledek:
$123,456.78
Nyní změňme lc_monetary a podívejte se, jak to ovlivní výstup:
SET lc_monetary = 'fr_FR';
SELECT CAST(123456.78 AS money); Výsledek:
123 456,78 Eu
V tomto případě je oddělovač skupiny reprezentován mezerou a desetinným oddělovačem je čárka.