PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Formatta i numeri con le virgole in PostgreSQL

In PostgreSQL possiamo usare TO_CHAR() funzione per formattare i numeri in un determinato formato. Ciò include la formattazione dei numeri con virgole nella posizione pertinente.

PostgreSQL ha anche un money tipo di dati, che restituisce il valore utilizzando la locale corrente. Questo può includere virgole nella posizione appropriata, in base alla locale utilizzata.

Il TO_CHAR() Funzione

Ecco un esempio di utilizzo di TO_CHAR() funzione per emettere un numero con virgole:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Risultato:

123,456.78

Il secondo argomento è costituito da una serie di modelli di modelli numerici che determinano come viene formattato il primo argomento.

Qui ho usato il G modello di modello per un separatore di gruppo in grado di riconoscere le impostazioni locali (denominato anche "separatore delle migliaia"). Avrei potuto usare una virgola (, ), ma non sarebbe stato in grado di riconoscere le impostazioni locali.

Ho anche usato il D modello di modello per un separatore decimale compatibile con le impostazioni locali.

In questo caso ho usato anche fm (che sta per "Modalità riempimento") per eliminare eventuali zero finali e spazi vuoti iniziali che potrebbero essere stati applicati automaticamente al risultato.

Il 9 il modello del modello è per ogni cifra. Potresti usare 0 invece se vuoi includere gli zeri iniziali.

Perché il G e D i modelli di modello sono in grado di riconoscere le impostazioni locali, sono in grado di produrre il carattere appropriato per il gruppo e i separatori decimali.

Ecco un esempio per dimostrare cosa intendo:

SET lc_numeric = 'fr_FR';
SELECT TO_CHAR(123456.78, 'fm999G999D99');

Risultato:

123,456.78

Ora, il separatore di gruppo è rappresentato da un punto/punto e il separatore decimale è rappresentato da una virgola. Questo perché ho cambiato lc_numeric variabile da utilizzare fr_FR (per la Francia), ed è consuetudine francese avere il separatore di gruppo e il punto decimale rappresentati in questo modo.

Locali diversi hanno convenzioni diverse per la formattazione dei numeri e la G e D i modificatori di formato sono in grado di determinare quali caratteri utilizzare per i separatori di gruppo e il separatore decimale.

Il money Tipo di dati

PostgreSQL ha un money tipo di dati che emette i suoi valori formattati in modo sensibile alle impostazioni locali.

Esempio:

SET lc_monetary = 'en_US';
SELECT CAST(123456.78 AS money);

Risultato:

$123,456.78

Ora cambiamo il lc_monetary variabile e guarda come questo influisce sull'output:

SET lc_monetary = 'fr_FR';
SELECT CAST(123456.78 AS money);

Risultato:

123 456,78 Eu

In questo caso, il separatore di gruppo è rappresentato da uno spazio e il separatore decimale è una virgola.