これは (MS SQL Server 2008) 用です。これにより、ユーザーは他のユーザーの開始日と終了日/時刻を重複することなくスケジュールできます。
スケジュール中に個人を重複させることができないというビジネス ルールに取り組んでいます。例: ユーザー 1 が 2012 年 1 月 1 日から 2012 年 1 月 4 日までにスケジュールされている場合、ユーザー 2 は 2012 年 1 月 2 日から 2012 年 1 月 4 日までのリクエストを送信できません。この部分はすでに処理されており、これが私の SQL です。
SELECT * FROM fooTable
WHERE
Prim = 1
AND
Group = 10
AND
(('2012-06-01 08:01' between startdate and enddate
OR '2012-06-03 08:01' between startdate and enddate)
OR
('2012-06-01 08:01' < startdate) AND ('2012-06-03 8:01' > enddate))
最後のシフトが終了したときに新しいシフトを開始できるという意味で、スケジュールのオーバーラップを許可する必要があります。例: 私の終了日は 2012 年 1 月 1 日午後 8 時です。2012 年 1 月 1 日と午後 8 時に開始するように誰かをスケジュールできるはずです。
これを熟考する助けが必要です。