sql >> Database teknologi >  >> RDS >> Mysql

Sådan formateres tal som valuta i MySQL

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.


  1. Enkelte citater, dobbelte citater og backticks i MySQL

  2. En guide til databaseautomatisering med Severalnines ClusterControl

  3. Hvad er SQL Server RAISERROR?

  4. Oracle Unicode-spooling