2013-08-12 21 views
9

MySQLには、毎日ログに記録される時間数を示すテーブルがあります。ブロック/日数単位でデータをすばやくグループ化するビューを作成しようとしています。最も単純なケースは毎月のことで、それは難しくありません。私は単に日付を "%y-%m"として選択し、その列でグループ化することができます。MySQLクエリは日付範囲でグループ化しますか?

例:

select time_logged, date_format(start_date, '%Y-%m') AS `month_logged` 
from work_log 
group by month_logged 

私は月ごとにグループ化していた場合に正常に動作します。しかし、私の問題は、月の13日から翌月の12日にグループ化する必要があることです(例:7月13日〜8月12日、8月13日〜9月12日など)。

単一のクエリ/ビューで簡単な方法がありますか?私は自分のニーズに合ったクエリを思いつくことができず、異なる日付フィールドの組み合わせでも遊んでいるようです。

+0

必要がありますか?またはあなたは今すぐGROUP BYしたいですか? – Hituptony

答えて

20

差し引き13日とグループ化あなたが今やっているん:あなたは、13日または12日に関連したデータのみを

select time_logged, 
     date_format(start_date - interval 12 day, '%Y-%m') AS `month_logged` 
from work_log 
group by month_logged; 
+0

12日と思いますが、+1: –

+0

Smack。もちろん。それは間違いなく最も簡単でしょう。私はついにそれが複雑なif節で動作するようにしましたが、これはずっと簡単で明白です!ありがとう! –

関連する問題