Nogle DBMS'er giver os mulighed for at formatere et tal som en valuta ved at angive en formatspecifikation for valutasymbolet. Angivelse af en sådan formatspecifikation gør det muligt for DBMS at returnere det relevante valutasymbol for lokaliteten.
MySQL har ikke en valutaformatspecifikation, så vi er nødt til at gøre lidt ekstra arbejde, hvis vi ønsker, at valutasymbolet skal returneres.
Eksempel
Her er et eksempel på returnering af et tal som valuta i MySQL:
SELECT CONCAT('$', FORMAT(1234.5678, 2));
Resultat:
$1,234.57
Her brugte vi CONCAT()
funktion til at sammenkæde valutasymbolet og tallet. Vi brugte også FORMAT()
funktion for at formatere tallet i det ønskede format.
Angiv en lokalitet
FORMAT()
funktion accepterer et valgfrit tredje argument for lokaliteten. Dette giver dig mulighed for at formatere nummeret ved hjælp af den angivne lokalitet.
Eksempel:
SELECT CONCAT('€', FORMAT(1234.5678, 2, 'de_DE'));
Resultat:
€1.234,57
I dette tilfælde er vores valutasymbol eurosymbolet (€
) i stedet for dollartegnet, og vi specificerede, at tallet skulle formateres ved hjælp af tyske nummereringskonventioner, som bruger et punktum for gruppeseparatoren og et komma for decimaltegnet.
Formattering i applikationen vs databasen
Det anbefales normalt, at valutaformatering osv. udføres på applikationsniveau i stedet for på databaseniveau. Applikationsprogrammeringsmiljøer har typisk bedre formateringsmuligheder end DBMS'er, og det er normalt bedre at få uformaterede data returneret af DB'en, så applikationen kan starte med en ren tavle og formatere den efter behov.
Når det er sagt, kræver situationen nogle gange formatering på databaseniveau, i hvilket tilfælde ovenstående teknikker kan være nyttige.