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

MySQLのDATETIME型では「2016-01-01 10:00:00」というかたちでデータが登録されています。
複数年にわたって登録されているデータから7月に該当するデータを取り出したいと思い、やりかたを調べてみました。
DATE_FORMAT関数を使うと、特定の年月、年、月、日などを簡単に取り出すことができます。
年月での抽出
2016年1月のデータを抽出するSQL文
1 |
SELECT * FROM table_name WHERE DATE_FORMAT(column_name, '%Y%m')=201601; |
年での抽出
2016年のデータを抽出するSQL文
1 |
SELECT * FROM table_name WHERE DATE_FORMAT(column_name, '%Y')=2016; |
月での抽出
7月のデータを抽出するSQL文
1 |
SELECT * FROM table_name WHERE DATE_FORMAT(column_name, '%m')=7; |
SQL文の中での具体的な使用例
1 |
SELECT * FROM table_name WHERE (DATE_FORMAT(column_name, '%Y%m') = '201601') LIMIT 100; |
関連記事
- [PHP] 日付から曜日を取得する方法(DateTime)
- [MySQL] Incorrect datetime value: ‘0000-00-00 00:00:00’ for column エラー対処方法
- [MySQL] 当日と前日の売上データの差を求める方法(自己結合)
- [Laravel] インストールとMySQLの接続
- [MySQL]1カラムに登録されたカンマ区切りデータを検索・抽出する方法(FIND_IN_SET)