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;

[実行結果]

MySQL で数値をフォーマットされた通貨の文字列に変換する 1


3 行目では、CONCAT('¥', FORMAT(@value, 0)) で値を日本円に変換しています。

4 行目では、CONCAT('$', FORMAT(@value, 2)) で値を US ドルに変換しています。

5 行目では、ドイツのロケールの de_DE を第三引数に指定して、CONCAT('€', FORMAT(@value, 2, 'de_DE')) でユーロに変換しています。

€12.345,68 とカンマとピリオドが日本円とは逆になっていますね。


以上、MySQL で数値をフォーマットされた通貨の文字列に変換する方法をご説明しました。

© 2024 MySQL 入門