16

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

元:

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 日など)。

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

4

1 に答える 1

31

13 日を引いて、現在行っているグループ化を行います。

select time_logged,
       date_format(start_date - interval 12 day, '%Y-%m') AS `month_logged`
from work_log
group by month_logged;
于 2013-08-12T19:26:47.600 に答える