PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Форматирайте числата със запетаи в PostgreSQL

В PostgreSQL можем да използваме TO_CHAR() функция за форматиране на числа в даден формат. Това включва форматиране на числа със запетаи в съответното местоположение.

PostgreSQL също има money тип данни, който извежда стойността, използвайки текущия локал. Това може да включва запетаи на подходящото място, въз основа на използвания локал.

TO_CHAR() Функция

Ето пример за използване на TO_CHAR() функция за извеждане на число със запетаи:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Резултат:

123,456.78

Вторият аргумент се състои от куп числови шаблони, които определят как е форматиран първият аргумент.

Тук използвах G шаблонен шаблон за разделител на групи, съобразен с локала (наричан още „разделител на хиляди“). Можех да използвам запетая (, ), но това не би било наясно с локала.

Използвах и D шаблонен шаблон за десетичен разделител, съобразен с локала.

В този случай използвах и fm (което означава „Режим на запълване“), за да потиснете всички крайни нули и водещи празни места, които може да са били автоматично приложени към резултата.

9 шаблонът е за всяка цифра. Можете да използвате 0 вместо това, ако искате да включите водещи нули.

Тъй като G и D Шаблонните шаблони са наясно с локал, те са в състояние да произведат подходящия знак за групата и десетичните разделители.

Ето пример, за да демонстрирам какво имам предвид:

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

Резултат:

123,456.78

Сега разделителят на групата е представен от точка/точка, а десетичният разделител е представен със запетая. Това е така, защото промених lc_numeric променлива за използване на fr_FR (за Франция) и френският обичай е груповият разделител и десетичната запетая да бъдат представени по този начин.

Различните локали имат различни конвенции за форматиране на числа и G и D модификаторите на формат могат да определят кои знаци да се използват за разделители на групи и десетичния разделител.

money Тип данни

PostgreSQL има money тип данни, който извежда своите стойности, форматирани по начин, съобразен с локала.

Пример:

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

Резултат:

$123,456.78

Сега нека променим lc_monetary променлива и вижте как това се отразява на изхода:

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

Резултат:

123 456,78 Eu

В този случай разделителят на групата е представен с интервал, а десетичният разделител е запетая.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкнете речника на Python с помощта на Psycopg2

  2. Как да управлявам db връзки на сървъра?

  3. Размер на таблицата на дяловете в PostgreSQL 9.0

  4. Как да отпечатате резултата от PostgreSQL заявка във формат CSV или TSV от командния ред?

  5. Извличане на дата (гггг/мм/дд) от времеви печат в PostgreSQL