MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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」など、さまざまな指定子が用意されているので、用途に応じて使い分けると便利です。

  1. MySQLで特定の年の開始日と終了日を取得する方法

    MySQLで特定の年に該当するレコードの開始日(StartDate)と終了日(EndDate)を抽出するには、YEAR()関数を使用します。この関数は日付から「年」の部分だけを取り出すことができるため、年の条件での絞り込みに便利です。ここでは、実際にテーブルを作成し、サンプルデータを登録して、特定の年でレコードを検索する手順を順番に解説します。1. サンプルテーブルを作成するまず、開始日と終了日を格納するためのテーブルを作成します。mysql> create table DemoTable1843 ( StartDate date, EndDate date

  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文を使って、「日/月/年 時:分:秒」