sql >> Databáze >  >> RDS >> PostgreSQL

Formátování čísel s čárkami v PostgreSQL

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.


  1. Oracle nerozlišuje mezi nulami a prázdnými řetězci?

  2. Monitorování vašich databází pomocí MySQL Enterprise Monitor

  3. SQL Vnitřní spojení na vybraných příkazech

  4. MySQL řekl:Dokumentace #1045 - Přístup odepřen pro uživatele 'root'@'localhost' (pomocí hesla:NE)