集計をするにあたって、日別や月別に集計したい場合、とりあえずMySQLでは期間内のデータを全件取得してから、PHPで整形してたんですが、MySQLでいい感じにできるみたいです。
(※日時を格納しているフィールド「time」の型はdatetimeでもcharでもいける)
//【年別に集計】
SELECT id, DATE_FORMAT(time,'%Y年') as time1 FROM table1 GROUP BY time1
//【月別に集計】
SELECT id, DATE_FORMAT(time,'%Y年%m月') as time2 FROM table1 GROUP BY time2
//【日別に集計】
SELECT id, DATE_FORMAT(time,'%Y年%m月%d日') as time3 FROM table1 GROUP BY time3
参考
http://ma-bank.com/item/604