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

MySQLで日付から月と年を抽出する方法|MONTH()・YEAR()関数の使い方

MySQLで日付(DATE型やDATETIME型)のデータから「月」と「年」だけを取り出したい場合、MONTH()関数YEAR()関数を使うのが最もシンプルな方法です。この記事では、テーブルの作成からデータの挿入、実際に月と年を抽出するクエリまで、手順を追ってわかりやすく解説します。

1. テーブルの作成

まず、DATETIME型のカラムを持つテーブルを作成します。

mysql> create table DemoTable
    -> (
    -> DueDate datetime
    -> );
Query OK, 0 rows affected (0.90 sec)

2. レコードの挿入

次に、insertコマンドを使ってテーブルに複数の日付データを挿入していきます。

mysql> insert into DemoTable values('2019-01-21');
Query OK, 1 row affected (0.22 sec)

mysql> insert into DemoTable values('2019-06-15');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('2018-12-01');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('2015-04-01');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('2016-08-14');
Query OK, 1 row affected (0.19 sec)

3. テーブルの中身を確認する

select文を実行して、テーブルに登録されたすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

出力結果

+---------------------+
| DueDate             |
+---------------------+
| 2019-01-21 00:00:00 |
| 2019-06-15 00:00:00 |
| 2018-12-01 00:00:00 |
| 2015-04-01 00:00:00 |
| 2016-08-14 00:00:00 |
+---------------------+
5 rows in set (0.00 sec)

4. 月と年を抽出するクエリ

ここからが本題です。MONTH()関数とYEAR()関数を組み合わせることで、DueDateカラムから月と年をそれぞれ抽出できます。

mysql> select MONTH(DueDate) AS MONTH, YEAR(DueDate) AS YEAR from DemoTable;

出力結果

+-------+------+
| MONTH | YEAR |
+-------+------+
| 1     | 2019 |
| 6     | 2019 |
| 12    | 2018 |
| 4     | 2015 |
| 8     | 2016 |
+-------+------+
5 rows in set (0.00 sec)

AS句で別名を指定することで、結果セットのカラム名が「MONTH」「YEAR」となり、読みやすい出力になります。

補足:DATE_FORMAT()関数を使った応用例

月と年を「2019-01」のような文字列形式でまとめて取得したい場合は、DATE_FORMAT()関数が便利です。

mysql> select DATE_FORMAT(DueDate, '%Y-%m') AS YearMonth from DemoTable;

書式指定子「%Y」(4桁の年)と「%m」(2桁の月)を組み合わせることで、好みの形式に自由に整形できます。また、EXTRACT()関数を使えば「EXTRACT(YEAR_MONTH FROM DueDate)」のように記述し、「201901」のような数値形式で年と月を一度に取得することも可能です。

まとめ

  • MONTH():日付から月(1〜12)を数値で取得できる
  • YEAR():日付から年(4桁)を数値で取得できる
  • DATE_FORMAT():任意の書式で年月を文字列として整形できる

用途に合わせてこれらの関数を使い分けることで、日付データの集計や絞り込みが効率的に行えます。ぜひ实际の開発でも活用してみてください。

  1. MySQLで日付から年と月を抽出する3つの方法を徹底解説

    MySQLでは、DATE型やDATETIME型のカラムから「年」や「月」の情報を抽出する場面がよくあります。例えば、設立年月の一覧表示や、年度別・月別の集計などがその代表例です。本記事では、サンプルテーブル「collegedetail」(大学の設立日 estb カラムを含む)を使いながら、年と月を抽出する代表的な3つの方法をわかりやすく解説します。方法1:EXTRACT()関数を使う年と月をまとめて1つの値として取得したい場合は、EXTRACT()関数が便利です。引数に「YEAR_MONTH」を指定することで、年と月を連結した数値(例:201005=2010年5月)として抽出できます。mysq

  2. MySQLでテーブルの最後の10件のレコードを取得する方法

    MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected