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

Как да форматирате числа в PostgreSQL

Когато работите с Postgres, можете да използвате to_char() функция за извеждане на числа в даден формат.

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

Връщаната стойност е text .

В зависимост от вашите изисквания, може да предпочетете да преобразувате числото в подходящия тип данни, например като използвате cast() функция.

Примери за двата метода са по-долу.

Пример

Ето основен пример за демонстрация.

SELECT to_char(10, '99.99'); 

Резултат:

10.00

9 s всъщност имат специално значение в този контекст. Този знак е един от валидните шаблони, от които може да се състои вашият низ за форматиране, когато форматирате числа.

В случай на 9 , той посочва позиция на цифрата, но ако е водеща нула, тогава тя ще бъде заменена с интервал, докато ако е последна нула и е посочен режим на запълване, тя ще бъде изтрита.

Ако премахна десетичната запетая и частта от секундите, получавам различен резултат.

SELECT to_char(10, '99'); 

Резултат:

10

Пуснете водещите нули

Можете да замените 9 с 0 ако искате да потиснете началните и задните нули, дори когато са незначителни.

Ето пример, който демонстрира разликата между двете.

SELECT 
  to_char(0010, '9999') AS "9999",
  to_char(0010, '0000') AS "0000"; 

Резултат:

 9999 | 0000 -------+------- 10 | 0010

Шаблони на шаблони

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

Например 9999 е форматен низ, който се състои от четири шаблона – всеки от които е 9 .

Десетичната запетая е друг шаблонен модел.

Можех да използвам D вместо десетичната запетая. Това използва текущия локал за действителното форматиране.

SELECT 
  to_char(10, '99.99') AS "99.99",
  to_char(10, '99D99') AS "99D99"; 

Резултат:

 99,99 | 99D99 --------+-------- 10.00 | 10.00

За пълен списък с шаблони и модификатори вижте Шаблони и модификатори за числово форматиране в Postgres.

Модификатори на шаблонен шаблон

Има и няколко модификатора, които могат да се използват заедно с шаблона. Те променят начина на форматиране на изхода в зависимост от използвания модификатор.

По-конкретно, има три модификатора, които могат да се използват с цифрово форматиране.

Модификатор Описание
FM префикс режим на запълване (потискане на завършващи нули и празни полета)
TH наставка наставка на порядков номер с главни букви
th наставка наставка за редовен номер с малки букви

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

Редни числа

Често срещано изискване е числото да се преобразува в неговия ред. Можем да използваме или TH или th за това, в зависимост от това дали искаме наставката да е с главни или малки букви.

Ето един пример.

SELECT to_char(03, 'FM99th'); 

Резултат:

3-та

В този случай използвах и FM за потискане на всички празни места и последващи нули.

Ето сравнение между използването на FM и пропускането му:

SELECT 
  to_char(03, '99th') AS "99th",
  to_char(03, 'FM99th') AS "FM99th"; 

Резултат:

<преди> 99-та | FM99-ти -------+-------- 3-ти | 3-то

Ако се вгледате внимателно, първата колона има водещи празни места, докато втората колона не.

Валута

Друго често срещано изискване е да се изведе число в дадена валута.

В този случай можем да използваме L шаблонен шаблон за показване на символ на валута, съобразен с локала.

SELECT to_char(03, 'LFM99D00'); 

Резултат:

$3,00

Подписани номера

Има и шаблони за подписани числа.

Ето един пример.

SELECT to_char(27, 'S99'); 

Резултат:

+27

Тук използвах S за да добавите знак за локал, който е закотвен към номера.

В този случай това беше положително число. Ето още един пример, който използва отрицателна стойност.

SELECT to_char(-27, 'S99'); 

Резултат:

-27

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

За примери вижте Добавяне на знак плюс/минус към число в Postgres.

И както споменахме, вижте Шаблони и модификатори за числово форматиране в Postgres за пълен списък с модификатори на шаблони, които можете да използвате, когато форматирате числа.

Тип данни

Както споменахме, to_char() функцията извежда резултата си като текст .

В зависимост от вашите изисквания може да намерите за по-добре да преобразувате числото в по-подходящ тип данни.

Ето пример, който преобразува число в парични данни тип.

SELECT cast(10 as money); 

Резултат:

$10,00

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Позовавайки се на избран псевдоним на обобщена колона в клаузата за наличие в Postgres

  2. Мога ли да накарам функция plpgsql да връща цяло число, без да използвам променлива?

  3. Инсталиране на postgresql с NSIS

  4. Как Cos() работи в PostgreSQL

  5. Вмъкване на стойност DEFAULT в колона, когато параметърът е NULL