0

「このイベントは月の第 2 および第 4 水曜日に発生する」または「このイベントは月の奇数土曜日 (つまり、第 1、第 3、および第5土曜日)。

そのためには、T-SQL で関数を記述して、Date 入力を受け取り、その日付に該当する dayname の月内の出現回数を表す整数を返す必要があります。

たとえば、関数 2012 DEC 21 を送信すると、2012 年 12 月 21 日はその月の第 3 金曜日にあたるため、3 が返されます。2012 年 12 月 29 日を指定すると、2012 年 12 月 29 日はその月の第 5 土曜日になるため、5 が返されます。

事前に入力されたカレンダーテーブルに頼らずにこれを行いたいと思います。たとえば、1958 年 7 月 16 日のどの水曜日が何だったのかを計算するなど、過去の日付を処理するためにこの関数を使用したいと思うかもしれません。

4

1 に答える 1

1

これを試して:

SELECT ((DATEPART(d, @input) - 1) / 7) + 1

実際の曜日は気にしません。月の初日からの日数 (日の値 - 1) だけです。次に、整数を 7 で割り、月の最初から何週間経ったかを取得し、最後に + 1 を使用して、0 ではなく 1 から開始します。

于 2012-12-04T23:39:02.287 に答える