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():任意の書式で年月を文字列として整形できる
用途に合わせてこれらの関数を使い分けることで、日付データの集計や絞り込みが効率的に行えます。ぜひ实际の開発でも活用してみてください。
-
MySQLで日付から年と月を抽出する3つの方法を徹底解説
MySQLでは、DATE型やDATETIME型のカラムから「年」や「月」の情報を抽出する場面がよくあります。例えば、設立年月の一覧表示や、年度別・月別の集計などがその代表例です。本記事では、サンプルテーブル「collegedetail」(大学の設立日 estb カラムを含む)を使いながら、年と月を抽出する代表的な3つの方法をわかりやすく解説します。方法1:EXTRACT()関数を使う年と月をまとめて1つの値として取得したい場合は、EXTRACT()関数が便利です。引数に「YEAR_MONTH」を指定することで、年と月を連結した数値(例:201005=2010年5月)として抽出できます。mysq
-
MySQLでテーブルの最後の10件のレコードを取得する方法
MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected