MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Форматирайте число като валута в SQL

Някои СУБД имат функции, които ни позволяват да форматираме числата като валута само чрез предаване на съответния форматен низ. Това преобразува числото в низ с приложимия символ за валута, разделител на групата и десетична запетая (ако е приложимо).

Други СУБД не го правят толкова лесно и първо трябва да свършите малко работа.

По-долу са дадени примери за използване на SQL за форматиране на числа като валута в някои от най-популярните СУБД.

Оракул

Oracle Database ни предоставя TO_CHAR(number) функция, която ни позволява да форматираме числа чрез предаване на модел на формат (или форматиращ низ). Можем да използваме тази функция, за да върнем число като валута.

Oracle предоставя няколко елемента за формат за връщане на символа за валута, в зависимост от това коя валута ви е необходима – символа за местна валута, символа за валута ISO или символа за двойна валута.

Ето пример и за трите:

ALTER SESSION SET NLS_TERRITORY = 'Denmark';
SELECT 
    TO_CHAR(12345, 'fmL99G999D00') AS "r1",
    TO_CHAR(12345, 'fmC99G999D00') AS "r3",
    TO_CHAR(12345, 'fmU99G999D00') AS "r3"
FROM DUAL;

Резултат:

            r1              r3            r3 
______________ _______________ _____________ 
kr12.345,00    DKK12.345,00    €12.345,00   

Вижте Как да форматирате число като валута в Oracle за повече информация и примери.

SQL сървър

SQL Server предоставя функцията FORMAT(), която ни позволява да форматираме числа и дати. C спецификаторът на формат може да се използва за връщане на число като валута:

SELECT FORMAT(1234, 'C');

Резултат:

$1,234.00

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

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

Вижте Как да форматирате числата като валута в SQL Server (T-SQL) за повече информация и примери.

PostgreSQL

PostgreSQL има money тип данни, които обикновено ще бъдат форматирани във валутата на локала при извеждане:

SELECT CAST(3145 as money);

Резултат:

$3,145.00

PostgreSQL също има TO_CHAR() функция, която преобразува стойността в низ и я форматира въз основа на низа за форматиране, който предоставяме. Следователно можем да го използваме, за да форматираме числата като валута, като предадем подходящия форматиращ низ.

Вижте Как да форматирате числата като валута в PostgreSQL за повече.

MySQL

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

SELECT CONCAT('$', FORMAT(1234.5678, 2));

Резултат:

$1,234.57

Тук използвахме CONCAT() функция за свързване на символа за валута и числото и използвахме FORMAT() функция за форматиране на числото в желания от нас формат.

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

Вижте Как да форматирате числата като валута в MySQL за повече информация.

MariaDB

MariaDB много прилича на MySQL и можем да използваме същия метод, който използвахме с MySQL.

Ето пример, който определя локал, който да се използва за форматирането на числата:

SELECT CONCAT('€', FORMAT(8790.2398, 2, 'de_DE'));

Резултат:

€8.790,24

В този случай предоставихме символа евро ( ) и форматира номера, за да използва конвенциите за номериране, използвани в Германия.

Вижте Форматиране на число като валута в MariaDB за повече информация.

SQLite

SQLite има PRINTF() функция, която ни позволява да форматираме число въз основа на низ за форматиране. Например, можем да използваме това, за да форматираме числото до определен брой десетични знаци, плюс да добавим символ за валута.

SELECT PRINTF("$%.2f", 123.457);

Резултат:

$123.46

Актуализиране :SQLite 3.38.0 (издадена на 22 февруари 2022 г.) преименува PRINTF() функция към FORMAT() . Оригиналният PRINTF() името се запазва като псевдоним за обратна съвместимост.

Така че горният пример може да бъде променен на това:

SELECT FORMAT("$%.2f", 123.457);

Резултат:

$123.46

Вижте документацията на SQLite за повече информация относно FORMAT() функция.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Клониране на база данни в Mongodb между хостове с помощта на драйвер на възел

  2. Оптимизиран начин за заявки в MongoDB, използвайки $in срещу $or

  3. Конфигуриране на удостоверяване на MongoDB-CR по подразбиране на MongoDB 3.x

  4. Mongodb, обобщена заявка с $lookup

  5. Как да импортирате .bson файлов формат в mongodb