MySQLで数値を百万(M)・十億(B)形式に変換する方法
MySQLで数値を百万(M)・十億(B)形式に変換する方法
MySQLでは FORMAT() 関数を使うことで、大きな数値をカンマ区切りの読みやすい形式に整形できます。さらに CASE 式と組み合わせれば、「78B」のような百万(M)・十億(B)単位の省略表記への変換も可能です。ここでは、その手順をサンプルSQL付きで解説します。
1. サンプルテーブルの作成
まず、BIGINT型のカラムを持つテーブルを作成します。
mysql> create table DemoTable
(
Value BIGINT
);
Query OK, 0 rows affected (0.74 sec)
2. レコードの挿入
INSERTコマンドでテーブルにデータを挿入します。
mysql> insert into DemoTable values(78000000000); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(10000000000); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(90000000000); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(450600000000); Query OK, 1 row affected (0.41 sec)
3. データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は次のとおりです。
+--------------+ | Value | +--------------+ | 78000000000 | | 10000000000 | | 90000000000 | | 450600000000 | +--------------+ 4 rows in set (0.00 sec)
4. FORMAT()関数でカンマ区切りに整形する
FORMAT(Value, 0) を使うと、小数点以下を丸めた上で、3桁ごとにカンマを挿入した文字列を取得できます。
mysql> select format(Value,0) as `FormatValue` from DemoTable;
実行結果:
+-----------------+ | FormatValue | +-----------------+ | 78,000,000,000 | | 10,000,000,000 | | 90,000,000,000 | | 450,600,000,000 | +-----------------+ 4 rows in set (0.00 sec)
5. 「B(十億)」「M(百万)」表記へ変換する
ダッシュボードなどで「78B」のような短い表記を使いたい場合は、CASE式で桁に応じて分岐し、CONCAT()で単位を連結します。
mysql> SELECT
CASE
WHEN Value >= 1000000000 THEN CONCAT(FORMAT(Value / 1000000000, 1), 'B')
WHEN Value >= 1000000 THEN CONCAT(FORMAT(Value / 1000000, 1), 'M')
ELSE FORMAT(Value, 0)
END AS FormatValue
FROM DemoTable;
実行結果:
+-------------+ | FormatValue | +-------------+ | 78.0B | | 10.0B | | 90.0B | | 450.6B | +-------------+ 4 rows in set (0.00 sec)
まとめ
- カンマ区切りの整形には
FORMAT()関数が便利です。 - 「M」「B」などの省略表記には、CASE式+
CONCAT()+除算を組み合わせます。 - 日本語環境では、同じ要領で「億」「万」単位(例:780億)に置き換えることも可能です。
-
PHP変数「11:00 AM」をMySQLの時間形式に変換する方法
PHPの「11:00 AM」をMySQLの時間形式に変換する方法 MySQLのTIME型やDATETIME型は、時刻を24時間表記の「HH:MM:SS」形式で管理します。そのため、「11:00 AM」のようにAM/PMを含む文字列をデータベースに保存する場合は、事前に形式を変換しておく必要があります。本記事では、PHP標準のDateTimeクラスを使った変換方法を、サンプルコードと実行結果付きで解説します。 変換の基本の流れ DateTime::createFromFormat() … 入力文字列をDateTimeオブジェクトとして解析する format() … 解析結果を「H:i:s」(2
-
MySQLで日付形式を変換する方法|STR_TO_DATE()関数の使い方を解説
MySQLでは、VARCHAR型などで保存された文字列の日付データを、正しい日付・時刻形式に変換したいケースがよくあります。そんなときに活躍するのが STR_TO_DATE() 関数です。この記事では、実際のSQL例とともに具体的な使い方を解説します。サンプルテーブルの作成まず、日付を文字列として格納するテーブルを作成します。mysql> create table DemoTable2010 ( DueDate varchar(20) ); Query OK, 0 rows affected (0.68 sec)テストデータの挿入INSERT文を使って、「日/月/年 時:分:秒」