Vissa DBMS ger oss möjligheten att formatera ett tal som en valuta genom att tillhandahålla en formatspecifikation för valutasymbolen. Genom att tillhandahålla en sådan formatspecifikation kan DBMS returnera lämplig valutasymbol för lokalen.
MySQL har ingen valutaformatspecifikation, så vi måste göra lite extra arbete om vi vill att valutasymbolen ska returneras.
Exempel
Här är ett exempel på att returnera ett nummer som valuta i MySQL:
SELECT CONCAT('$', FORMAT(1234.5678, 2));
Resultat:
$1,234.57
Här använde vi CONCAT()
funktion för att sammanfoga valutasymbolen och siffran. Vi använde även FORMAT()
funktion för att formatera numret i önskat format.
Ange ett språk
FORMAT()
funktion accepterar ett valfritt tredje argument för lokalen. Detta låter dig formatera numret med den angivna lokalen.
Exempel:
SELECT CONCAT('€', FORMAT(1234.5678, 2, 'de_DE'));
Resultat:
€1.234,57
I det här fallet är vår valutasymbol eurosymbolen (€
) istället för dollartecknet, och vi specificerade att numret skulle formateras med tyska numreringskonventioner, som använder en punkt för gruppavgränsaren och ett kommatecken för decimalkomma.
Formatera i applikationen kontra databasen
Det rekommenderas vanligtvis att valutaformatering etc görs på applikationsnivå snarare än på databasnivå. Applikationsprogrammeringsmiljöer har vanligtvis bättre formateringsmöjligheter än DBMS, och det är vanligtvis bättre att få oformaterad data som returneras av DB, så att applikationen kan starta med ett rent blad och formatera det efter behov.
Som sagt, ibland kräver situationen formatering på databasnivå, i vilket fall ovanstående tekniker kan vara användbara.