MySQL で数値をフォーマットされた通貨の文字列に変換する
ここでは、MySQL で数値をフォーマットされた通貨の文字列に変換する方法をご説明します。
数値をフォーマットされた通貨の文字列に変換する
MySQL で数値をフォーマットされた通貨の文字列に変換するには CONCAT() と FORMAT() 関数を使うことで取得することができます。
CONCAT() 関数は引数として渡した文字列をつなげた文字列を返す関数です。
CONCAT(文字列1, 文字列2, ...)
FORMAT() 関数は数値を指定した小数点で四捨五入して、3 桁ごとにカンマで区切った文字列を返す関数です。
FORMAT(数値, 小数点以下桁数[, ロケール])
ロケールはオプショナルの引数で、ドイツやイタリアなどカンマやピリオドのフォーマットが日本円とは反対の通貨の時に、ロケールを指定することで正しいフォーマットで取得できます。
ロケールに指定できる値は MySQL のお使いのバージョンのリファレンスマニュアルの「MySQL Server のロケールサポート」のページでご確認ください。
ロケールが指定されていない場合のデフォルト値は en_US です。
US ドルと日本円のカンマとピリオドの使い方は同じなので、日本円に変換する時はロケールを指定しなくても大丈夫です。
それでは、CONCAT() と FORMAT() 関数を使って、数値を通貨表記の文字列に変換してみます。
SET @value = 12345.6789;
SELECT CONCAT('¥', FORMAT(@value, 0)) AS JPY,
CONCAT('$', FORMAT(@value, 2)) AS USD,
CONCAT('€', FORMAT(@value, 2, 'de_DE')) AS EUR;
[実行結果]
3 行目では、CONCAT('¥', FORMAT(@value, 0)) で値を日本円に変換しています。
4 行目では、CONCAT('$', FORMAT(@value, 2)) で値を US ドルに変換しています。
5 行目では、ドイツのロケールの de_DE を第三引数に指定して、CONCAT('€', FORMAT(@value, 2, 'de_DE')) でユーロに変換しています。
€12.345,68 とカンマとピリオドが日本円とは逆になっていますね。
以上、MySQL で数値をフォーマットされた通貨の文字列に変換する方法をご説明しました。