×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
金額の数値データを表示する場合は、3桁ごとのカンマ編集で行うことが多いと思います。
この編集を行うために MySQL で数値を3桁ごとのカンマ区切り文字列に変換する方法として FORMAT 関数があります。
数値を '##,###,###.###' のような書式に変換し、小数点を丸めて、その結果を文字列として返します。
なお、 FORMAT 関数の説明は以下の通りです。
■[FORMAT関数]の説明
FORMAT(num, DP [, locale]) -- num : 指定数値 -- DP : 小数点の丸め位置(0 の場合は小数以下を表示しない) -- [locale] : 結果数の小数点、3 桁の区切り文字、および区切り文字間のグループ化に使用されるロケール -- ロケールの指定が無ければ'en_US' です。
それでは順次、FORMAT 関数の使用例を示します。
■[FORMAT関数]の例
MariaDB [(none)]> SELECT -> FORMAT(12345.123456, 4) -> ,FORMAT(12345.12, 4) -> ,FORMAT(12345.12, 0) -> ,FORMAT(12345.12, 4, 'de_DE') AS 'ドイツ語:ドイツ指定' -> ; +-------------------------+---------------------+---------------------+----------------------+ | FORMAT(12345.123456, 4) | FORMAT(12345.12, 4) | FORMAT(12345.12, 0) | ドイツ語:ドイツ指定 | +-------------------------+---------------------+---------------------+----------------------+ | 12,345.1235 | 12,345.1200 | 12,345 | 12.345,1200 | +-------------------------+---------------------+---------------------+----------------------+ 1 row in set (0.00 sec)
最初の例では小数以下を4桁に丸めるために5桁の「5」を繰り上げいます。
また、2番目の例では小数点以下が4桁に満たないため、「0」で埋めて表示されます。
丸め位置を「0」に指定すると小数点以下が表示されません。
日本では3桁ごとの区切りを「,」(カンマ)で小数点を「.」(ピリオド)で表示しますが、 国によってはこれが逆になる場合があります。 (「de_DE」はドイツの場合を指定しています。)
ここで少し気になったので、最初の例の値をマイナスにしてみました。 結果を見ると「-12,345.1235」となり、絶対値の小数点5桁を四捨五入してその値にマイナスとしている様です。
MariaDB [(none)]> SELECT FORMAT(-12345.123456, 4); +--------------------------+ | FORMAT(-12345.123456, 4) | +--------------------------+ | -12,345.1235 | +--------------------------+ 1 row in set (0.00 sec)
また、小数位置が「0」で小数点以下1位が「5」以上の場合はどうなるのでしょうか。
以下の結果から小数点以下1位が丸められます。
MariaDB [(none)]> SELECT -> FORMAT(12345.5, 0) -> ,FORMAT(-12345.5, 0); +--------------------+---------------------+ | FORMAT(12345.5, 0) | FORMAT(-12345.5, 0) | +--------------------+---------------------+ | 12,346 | -12,346 | +--------------------+---------------------+ 1 row in set (0.00 sec)
PR
コメント