-2

私は T-SQL を初めて使用し、ここで緊急の支援が必要でした。特定の日付から週番号を取得しようとしています。

組み込み関数があることは理解していますが、値の戻り値は私が望んでいたものではありません。

たとえば、 select を使用するdatepart(wk, '2013-01-07')と、「2」が返されますが、実際には「2」ではなく「1」が返されるはずです。

この問題を修正する方法はありますか?

4

4 に答える 4

1

dy datepart指定子を使用してdayOfYear番号を取得し、それを 7 で割ることができます。

select (datepart(dy, '2013-01-05') - 1) / 7 + 1;

ワーキングデモ

于 2013-09-23T08:28:35.570 に答える
0

これは、最初の週に定義したホップによって異なります。いつも同じ平日に始まりますか?それとも常に 1 月 1 日に開始しますか? 常に同じ曜日に開始する場合は、 を使用Set datefirstして、週の開始日として定義する曜日を T-SQL に伝えます。常に 1 月 1 日に開始したい場合は、週ではなく日を使用し、1 を引き、整数を 7 で割り、1 を足します。

declare @dat DateTime = getdate()
Select Select (datepart(dy, @dat)-1) / 7 + 1
于 2013-09-23T08:31:36.847 に答える
0

これを試して

SELECT DATEPART(WEEK,GETDATE())

于 2013-09-23T08:30:17.583 に答える