私は、繰り返しパターンを定義するシステムを持っています。各パターンは基準日(パターンが作成されたときは過去数年になることが多い)と日のカウント(ループ)を持つため、7日間のパターンを定義することができます:SQLの日付のモジュロ演算
表:パターン
ID | BaseDate | DayCount
-----------------------------
1 | 01/02/2005 | 7
表:PatternDetailは
PID | Offset | Detail
----------------------
1 | 0 | A
1 | 1 | B
1 | 2 | B
1 | 3 | C
etc.
(詳細列はドメイン固有と関連していない。)
私がしたいことは、ある与えられた作業パターンのためのPatternDetailテーブルの正しいオフセットを日付(今日)が計算した場合です。擬似コードでは、私はどうしますか:
offset = ((today.InDays) - (Pattern.BaseDate.InDays)) % (Pattern.DayCount)
私はSQLでこれを行うことができます(MSSQL ServerとOracleで動作する必要があります)?言い換えれば、どのようにして2つの日付の間の日数を計算し、この差の法をとることができますか?
を。ありがとうございました:)私はSQL構文に非常に慣れていません –
参照のために私はDATEDIFF(日、BaseDate、GETDATE())%DayCount –