PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Formatuj liczby za pomocą przecinków w PostgreSQL

W PostgreSQL możemy użyć TO_CHAR() funkcja formatowania liczb w zadanym formacie. Obejmuje to formatowanie liczb z przecinkami w odpowiedniej lokalizacji.

PostgreSQL ma również money typ danych, który wyprowadza wartość przy użyciu bieżących ustawień regionalnych. Może to zawierać przecinki w odpowiednim miejscu, w zależności od używanego języka.

TO_CHAR() Funkcja

Oto przykład użycia TO_CHAR() funkcja wyprowadzania liczby z przecinkami:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Wynik:

123,456.78

Drugi argument składa się z kilku liczbowych wzorców szablonów, które określają sposób formatowania pierwszego argumentu.

Tutaj użyłem G wzorzec szablonu dla separatora grup uwzględniającego ustawienia regionalne (nazywanego również „separatorem tysięcy”). Mogłem użyć przecinka (, ), ale nie uwzględniałoby to ustawień regionalnych.

Użyłem również D wzorzec szablonu dla separatora dziesiętnego uwzględniającego ustawienia regionalne.

W tym przypadku również użyłem fm (co oznacza „Tryb wypełniania”), aby pominąć wszelkie końcowe zera i początkowe spacje, które mogły zostać automatycznie zastosowane do wyniku.

9 wzór szablonu jest dla każdej cyfry. Możesz użyć 0 zamiast tego, jeśli chcesz uwzględnić wiodące zera.

Ponieważ G i D wzorce szablonów są świadome lokalizacji, są w stanie wytworzyć odpowiedni znak dla grupy i separatorów dziesiętnych.

Oto przykład pokazujący, co mam na myśli:

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

Wynik:

123.456,78

Teraz separator grup jest reprezentowany przez kropkę/kropkę, a separator dziesiętny jest reprezentowany przez przecinek. Dzieje się tak, ponieważ zmieniłem lc_numeric zmienna do użycia fr_FR (dla Francji) i jest zwyczajem francuskim, że jego separator grupowy i kropka dziesiętna są reprezentowane w ten sposób.

Różne języki mają różne konwencje formatowania liczb, a G i D modyfikatory formatu są w stanie określić, których znaków użyć jako separatorów grup i separatora dziesiętnego .

money Typ danych

PostgreSQL ma money typ danych, który wyświetla swoje wartości sformatowane w sposób uwzględniający ustawienia regionalne.

Przykład:

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

Wynik:

$123,456.78

Teraz zmieńmy lc_monetary zmienna i zobacz, jak to wpływa na wyjście:

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

Wynik:

123 456,78 Eu

W tym przypadku separatorem grupy jest spacja, a separatorem dziesiętnym jest przecinek.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Plik ~/.psqlrc dla DBA

  2. Przekazywanie identyfikatora użytkownika do wyzwalaczy PostgreSQL

  3. Zresetuj wartość sekwencji jako 1

  4. Gdzie są logi PostgreSQL w systemie macOS?

  5. java.lang.ClassNotFoundException:org.postgresql.Driver, Android