2 つの日付の間の特定の日数 (例: 水曜日と木曜日) を計算する必要があります。
時間関数と関連するすべての関数については知っていますが、このコンテキストでそれらを使用する方法がわかりません。
問題は 2 つのソリューションで解決しましたが、ブース ソリューションを選択できないようです。Andrius NaruševičiusとKickstartからの啓蒙に感謝します :D
2 つの日付の間の特定の日数 (例: 水曜日と木曜日) を計算する必要があります。
時間関数と関連するすべての関数については知っていますが、このコンテキストでそれらを使用する方法がわかりません。
問題は 2 つのソリューションで解決しましたが、ブース ソリューションを選択できないようです。Andrius NaruševičiusとKickstartからの啓蒙に感謝します :D
カレンダー表の方が使いやすいと思います。たとえば、2013 年 3 月の水曜日と木曜日の数を調べるには、次のようにします。
select count(*)
from calendar
where cal_date between '2013-03-01' and '2013-03-31'
and day_of_week in ('Wed', 'Thu')
count
--
8
日曜日もカウントするように拡張するには、IN 句に 'Sun' を追加するだけです。(私はこれが一種の奇妙なことのように私を襲ったと言わざるを得ません. )
select count(*)
from calendar
where cal_date between '2013-03-01' and '2013-03-31'
and day_of_week in ('Wed', 'Thu', 'Sun')
count
--
13
PostgreSQL のカレンダー テーブルのコードを次に示します。MySQL は CHECK 制約を強制しないため、MySQL 用に変換するには、いくつかのフープをジャンプする必要があります。