[MySQL]月・年単位でデータを抽出する方法 (DATE_FORMAT)

MySQLのDATETIME型では「2016-01-01 10:00:00」というかたちでデータが登録されています。
複数年にわたって登録されているデータから7月に該当するデータを取り出したいと思い、やりかたを調べてみました。

DATE_FORMAT関数を使うと、特定の年月、年、月、日などを簡単に取り出すことができます。

年月での抽出

2016年1月のデータを抽出するSQL文

SELECT * FROM table_name WHERE DATE_FORMAT(column_name, '%Y%m')=201601;

年での抽出

2016年のデータを抽出するSQL文

SELECT * FROM table_name WHERE DATE_FORMAT(column_name, '%Y')=2016;

月での抽出

7月のデータを抽出するSQL文

SELECT * FROM table_name WHERE DATE_FORMAT(column_name, '%m')=7;

SQL文の中での具体的な使用例

SELECT * FROM table_name WHERE (DATE_FORMAT(column_name, '%Y%m') = '201601') LIMIT 100;


Author: webmaster