一部のDBMSは、通貨記号のフォーマット指定子を提供することにより、数値を通貨としてフォーマットする機能を提供します。このようなフォーマット指定子を提供すると、DBMSはロケールに適した通貨記号を返すことができます。
MySQLには通貨形式指定子がないため、通貨記号を返す場合は、少し余分な作業を行う必要があります。
例
MySQLで数値を通貨として返す例を次に示します。
SELECT CONCAT('$', FORMAT(1234.5678, 2));
結果:
$1,234.57
ここでは、CONCAT()
を使用しました 通貨記号と数値を連結する関数。 FORMAT()
も使用しました 数値を目的の形式にフォーマットする関数。
ロケールを指定
FORMAT()
関数は、ロケールのオプションの3番目の引数を受け入れます。これにより、指定したロケールを使用して数値をフォーマットできます。
例:
SELECT CONCAT('€', FORMAT(1234.5678, 2, 'de_DE'));
結果:
€1.234,57
この場合、通貨記号はユーロ記号(€
)です。 )ドル記号の代わりに、グループ区切り文字にピリオドを使用し、小数点にコンマを使用するドイツ語の番号付け規則を使用して数値をフォーマットするように指定しました。
アプリケーションとデータベースのフォーマット
通常、通貨の書式設定などは、データベースレベルではなく、アプリケーションレベルで行うことをお勧めします。アプリケーションプログラミング環境は通常、DBMSよりも優れたフォーマット機能を備えており、アプリケーションがクリーンな状態で開始して必要に応じてフォーマットできるように、通常はフォーマットされていないデータをDBから返す方が適切です。
とはいえ、状況によってはデータベースレベルでのフォーマットが必要になる場合があります。その場合は、上記の手法が役立ちます。