MySQLで日付データから月名と年を表示する方法(DATE_FORMAT関数の使い方)
はじめに
MySQLでは、DATETIME型やDATE型のカラムから「月の名前」と「年」を抽出して表示したいケースがよくあります。そんなときに便利なのが DATE_FORMAT() 関数です。この記事では、実際にテーブルを作成し、日付データを月名と年の形式に変換して表示する手順を解説します。
サンプルテーブルの作成
まず、DATETIME型のカラムを持つテーブルを作成します。
mysql> create table DemoTable1619
-> (
-> ArrivalTime datetime
-> );
Query OK, 0 rows affected (0.45 sec)
テストデータの挿入
次に、INSERT文を使っていくつかのレコードを登録します。現在の日時を返す now() や curdate() を使うこともできます。
mysql> insert into DemoTable1619 values(now());
Query OK, 1 row affected (0.40 sec)
mysql> insert into DemoTable1619 values(curdate());
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1619 values('2019-12-31');
Query OK, 1 row affected (0.17 sec)
登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1619;
実行結果は以下のとおりです。
+---------------------+
| ArrivalTime |
+---------------------+
| 2019-10-20 15:02:12 |
| 2019-10-20 00:00:00 |
| 2019-12-31 00:00:00 |
+---------------------+
3 rows in set (0.00 sec)
DATE_FORMAT関数で月名と年を取得する
DATETIME型の値を「月名 年」の形式に変換するには、書式指定子 %M(月の完全な英語名)と %Y(4桁の年)を組み合わせて使用します。
mysql> select date_format(ArrivalTime,'%M %Y') from DemoTable1619;
実行すると、以下のように月名と年が表示されます。
+----------------------------------+
| date_format(ArrivalTime,'%M %Y') |
+----------------------------------+
| October 2019 |
| October 2019 |
| December 2019 |
+----------------------------------+
3 rows in set (0.00 sec)
主な書式指定子の一覧
DATE_FORMAT関数で使える代表的な書式指定子は以下のとおりです。
%M:月の完全な英語名(例:October)%b:月の省略形(例:Oct)%m:2桁の月の数値(01〜12)%Y:4桁の年(例:2019)%y:2桁の年(例:19)%d:2桁の日(01〜31)
まとめ
MySQLで日付データから月名と年を表示するには、DATE_FORMAT関数に '%M %Y' を指定するだけで簡単に実現できます。レポートや一覧画面などで「October 2019」のような見やすい形式で日付を表示したい場合に、ぜひ活用してください。必要に応じて別名(AS句)を付けて出力することも可能です。
-
MySQLで特定の月と年に基づいてレコードを取得する方法
MySQLで特定の月と年に基づいてレコードを取得する方法日付データから特定の月と年に該当するレコードだけを抽出したい場合、MySQLの MONTH() 関数と YEAR() 関数を組み合わせて使用します。ここでは、実際にテーブルを作成し、データを挿入して、条件に合うレコードを取得するまでの手順を具体的に解説します。1. サンプルテーブルの作成まず、日付型(DATE)のカラムを持つテーブルを作成します。mysql> create table DemoTable1846 ( PurchaseDat
-
MySQLで現在の日付と翌日のレコードを条件に特定の列を抽出する方法
MySQLでは、CURDATE()関数を使うことで、現在の日付やその翌日に該当するレコードを簡単に抽出できます。この記事では、実際のサンプルを使いながら、現在の日付と翌日の出荷日を持つレコードから特定の列を選択して取得する方法を解説します。 1. 現在の日付を確認する まず、curdate()関数で現在の日付を取得してみましょう。 mysql> select curdate(); 実行すると、以下のような結果が表示されます。 +------------+ | curdate() | +------------+ | 2019-12-15 | +------------+ 1 row