MogLog

メモというか日記というか備忘録というか

mysqlで、datetimeのカラムの年と月だけを利用する

datetime型のカラムには例えば、「2012-09-30 12:00:00」のように値が格納されている。このうち、「201209」のように、年と月だけを対象にして、検索をかける方法のメモ。

mysqlのDATE_FORMAT関数を利用することで、アプリケーション側でごにょごにょする必要なく検索をかけることができる。

ex) created_atカラムの値が「201209」のデータを10件取得する

SELECT * FROM users WHERE (DATE_FORMAT(created_at, '%Y%m') = '201209') LIMIT 10;

DATE_FORMAT関数の詳細については以下
http://dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.html
http://ma-bank.com/item/604

今回のように、「年と月」だけではなく、年だけ、月だけ、月日だけというような操作も容易にできるよう。
MySQLには他にも日付を操作する関数がたくさんあるようなので、アプリケーション側で操作する前に、こちらで操作できないかをまず調べるようにしたい。