I PostgreSQL kan vi bruge TO_CHAR()
funktion til at formatere tal i et givet format. Dette inkluderer formatering af tal med kommaer på den relevante placering.
PostgreSQL har også en money
datatype, som udsender værdien ved hjælp af den aktuelle lokalitet. Dette kan inkludere kommaer på det rigtige sted, baseret på den lokalitet, der bruges.
TO_CHAR()
Funktion
Her er et eksempel på brug af TO_CHAR()
funktion til at udskrive et tal med kommaer:
SELECT TO_CHAR(123456.78, 'fm999G999D99');
Resultat:
123,456.78
Det andet argument består af en masse numeriske skabelonmønstre, der bestemmer, hvordan det første argument formateres.
Her brugte jeg G
skabelonmønster for en lokalitetsbevidst gruppeseparator (også kaldet en "tusinderseparator"). Jeg kunne have brugt et komma (,
), men det ville ikke have været lokalitetsbevidst.
Jeg brugte også D
skabelonmønster for en lokalitetsbevidst decimalseparator.
I dette tilfælde brugte jeg også fm
(som står for "Fill Mode") for at undertrykke alle efterfølgende nuller og indledende blanke, der kan være blevet automatisk anvendt på resultatet.
9
skabelonmønsteret er for hvert ciffer. Du kan bruge 0
i stedet hvis du vil inkludere foranstillede nuller.
Fordi G
og D
skabelonmønstre er lokalitetsbevidste, de er i stand til at producere det passende tegn til gruppe- og decimalseparatorerne.
Her er et eksempel for at demonstrere, hvad jeg mener:
SET lc_numeric = 'fr_FR';
SELECT TO_CHAR(123456.78, 'fm999G999D99');
Resultat:
123,456.78
Nu er gruppeseparatoren repræsenteret med et punktum/punktum, og decimaltegnet er repræsenteret med et komma. Dette er fordi jeg har ændret lc_numeric
variabel for at bruge fr_FR
(for Frankrig), og det er den franske skik at få sin gruppeseparator og decimaltegn repræsenteret på denne måde.
Forskellige lokaliteter har forskellige konventioner for formatering af tal, og G
og D
formatmodifikatorer er i stand til at bestemme, hvilke tegn der skal bruges til gruppeseparatorer og decimalen separator.
money
Datatype
PostgreSQL har en money
datatype, der udsender dens værdier formateret på en lokalitetsbevidst måde.
Eksempel:
SET lc_monetary = 'en_US';
SELECT CAST(123456.78 AS money);
Resultat:
$123,456.78
Lad os nu ændre lc_monetary
variabel og se, hvordan dette påvirker outputtet:
SET lc_monetary = 'fr_FR';
SELECT CAST(123456.78 AS money);
Resultat:
123 456,78 Eu
I dette tilfælde er gruppeseparatoren repræsenteret af et mellemrum, og decimalen separator er et komma.