1

週刊について質問したいです。1 か月あたりの週単位の計算方法。たとえば、1 か月は 1 か月あたり 30 日と 4 週間です。1 月の第 2 週を選択した場合。月ごとの週数と月の名前が表示されます。結果に、月と月の名前の週の数(年間の週の合計ではありません)を表示したい.ありがとう.

月ごとの週次計算が知りたいです。

例えば。1月分

1-7 days------------   1 week
8-14 days------------  2 week
15-21 days------------ 3 week
22-28 days------------ 4 week
29 days - other------- 5 week

例えば。2月分

1-7 days------------   1 week
8-14 days------------  2 week
15-21 days------------ 3 week
22-28 days------------ 4 week

等々。

4

3 に答える 3

2

クエリでこのグループ化を使用できます。

GROUP BY DATEADD(DAY, -(DAY(DateColumn) - 1) % 7, DateColumn)

次の図は、上記の式がどのように機能するかを示しています。

DateColumn  DAY(DateColumn)  DAY(…) - 1  (DAY(…)-1) % 7  DATEADD(…)
----------  ---------------  ----------  --------------  ----------
2012-04-01  1                0           0               2012-04-01
2012-04-02  2                1           1               2012-04-01
2012-04-03  3                2           2               2012-04-01
2012-04-04  4                3           3               2012-04-01
2012-04-05  5                4           4               2012-04-01
2012-04-06  6                5           5               2012-04-01
2012-04-07  7                6           6               2012-04-01
2012-04-08  8                7           0               2012-04-08
2012-04-09  9                8           1               2012-04-08
…           …                …           …               …
2012-04-13  13               12          5               2012-04-08
2012-04-14  14               13          6               2012-04-08
2012-04-15  15               14          0               2012-04-15
…           …                …           …               …
2012-04-21  21               20          6               2012-04-15
2012-04-22  22               21          0               2012-04-22
…           …                …           …               …
2012-04-28  28               27          6               2012-04-22
2012-04-29  29               28          0               2012-04-29
2012-04-30  30               29          1               2012-04-29
2012-05-01  1                0           0               2012-05-01
2012-05-02  2                1           1               2012-05-01
…           …                …           …               …

ご覧のとおり、結果は週の始まり (定義した意味での週) です

于 2012-04-05T18:28:07.720 に答える
1

私はすでに答えを得ました。あなたはちょうど置く:

select * from customer((DATEPART(day, [date_field] - 1) / 7 + 1 = :weeks) or (:weeks = ' '))
于 2012-04-06T01:36:06.530 に答える
0

あなたの質問はかなり不明確です(「毎週」とはどういう意味ですか?毎週何を意味しますか?)そして、私はそれを本当に理解しているかどうかわかりません。しかし、特定の日付について、その月の何週目かを知りたいと思いますか?

もしそうなら、最も簡単な解決策は、年の各日付に必要な週番号とその他の有用な情報を格納するカレンダー テーブルです。好きなだけ何年も前もって入力することができ、次のようなクエリを書くことができます:

select WeekInTheMonth
from dbo.Calendar
where BaseDate = @SomeDate

これで問題が解決しない場合は、期待する入力パラメータと出力データを正確に示す必要があります。

ところで、あなたはデータベース クライアントとして Aqua Data Studio を使用していると思いますが、この質問とは関係がないので、タイトルを編集することをお勧めします。

于 2012-04-05T14:50:19.853 に答える