9

1 年は 12 か月に分割されます。1 か月を 4 週間に分割できます。

MySQLでは、月の週を返す方法は? (例:1週目:2件、2週目:5件、3週目:3件、4週目:8件)

関数は月ではなく週番号 YEAR を返すため、Week および WeekOfYear を使用しても目的の結果が得られません。

4

6 に答える 6

15

MySQL 組み込み関数 week を使用して、その年の週番号を見つけてから、その月の最初の日の週番号を引きます。

SELECT WEEK('2012-02-20') - WEEK('2012-02-01')

ドキュメントには、探しているものに正確に合うように呼び出しをカスタマイズするためのオプションがたくさんありますが、私の例があなたに何が利用できるかのアイデアを与えることを願っています.

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week

于 2012-08-20T23:58:47.917 に答える
13
FLOOR((DayOfMonth(dateCol)-1)/7)+1

これはおそらくデータを分割する良い方法ではないことを明確にしたいと思います-(コメントを参照)が、これにより可能な限り近づくことができます。

于 2012-08-20T23:51:33.373 に答える
2

月の週(最初の不完全な週が全体としてカウントされる場合)

select ceiling((day(now()) - 
(6 - weekday(date_format(now(),'%Y-%m-01'))))/7) 
+ case when 6 - weekday(date_format(now(),'%Y-%m-01'))> 0 
then 1 else 0 end week_of_month;
于 2016-04-25T04:06:05.737 に答える