MySQLでDATE_FORMAT()を使って日付から月名と年を取得する方法
MySQLで日付データを「月名 年」の形式で表示したい場合は、DATE_FORMAT()関数を使用します。フォーマット指定子として「%M」(月名)と「%Y」(年)を設定することで、月名と年だけを簡単に抽出できます。
それでは、実際にサンプルテーブルを作成して確認していきましょう。
サンプルテーブルの作成
まず、デモ用のテーブルを作成します。
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
AdmissionDate date
);
Query OK, 0 rows affected (0.69 sec)テーブルへのレコード挿入
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable(AdmissionDate) values('2013-04-21');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(AdmissionDate) values('2014-01-31');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(AdmissionDate) values('2016-09-01');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(AdmissionDate) values('2018-12-12');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(AdmissionDate) values('2019-04-01');
Query OK, 1 row affected (0.15 sec)挿入したレコードの確認
SELECTコマンドでテーブルの内容を表示してみましょう。
mysql> select *from DemoTable;
実行すると、以下のような結果が出力されます。
+----+---------------+ | Id | AdmissionDate | +----+---------------+ | 1 | 2013-04-21 | | 2 | 2014-01-31 | | 3 | 2016-09-01 | | 4 | 2018-12-12 | | 5 | 2019-04-01 | +----+---------------+ 5 rows in set (0.00 sec)
月名と年を取得するクエリ
ここが本題です。DATE_FORMAT()関数を使って、日付を「月名 年」の形式にフォーマットして返すクエリは以下の通りです。
mysql> select DATE_FORMAT(AdmissionDate,'%M %Y') AS MonthNameAndYear FROM DemoTable;
実行すると、次のような結果が得られます。
+------------------+ | MonthNameAndYear | +------------------+ | April 2013 | | January 2014 | | September 2016 | | December 2018 | | April 2019 | +------------------+ 5 rows in set (0.02 sec)
使用したフォーマット指定子の解説
今回のクエリで使用した主なフォーマット指定子は以下の通りです。
- %M:月名を完全な英語名で返します(例:April、January)
- %Y:4桁の数値で年を返します(例:2013、2019)
このようにDATE_FORMAT()関数を活用すれば、日付データを自由自在に整形できます。月だけを数値で表示したい場合は「%m」、省略形の月名を使いたい場合は「%b」など、さまざまな指定子が用意されているので、用途に応じて使い分けると便利です。
-
MySQLで特定の年の開始日と終了日を取得する方法
MySQLで特定の年に該当するレコードの開始日(StartDate)と終了日(EndDate)を抽出するには、YEAR()関数を使用します。この関数は日付から「年」の部分だけを取り出すことができるため、年の条件での絞り込みに便利です。ここでは、実際にテーブルを作成し、サンプルデータを登録して、特定の年でレコードを検索する手順を順番に解説します。1. サンプルテーブルを作成するまず、開始日と終了日を格納するためのテーブルを作成します。mysql> create table DemoTable1843 ( StartDate date, EndDate date
-
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文を使って、「日/月/年 時:分:秒」