これは(MS SQL Server 2008)です。ユーザーは、重複することなく開始日と終了日の他のユーザーをスケジュールすることができます。SQL、日付/時刻の選択
スケジュール中に個人を重複させることができないというビジネスルールに取り組んでいます。 E.G、ユーザー1が2012年1月1日から2012年1月4日に予定されている場合、ユーザー2は2012年1月20日から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))
私は、新しいシフトが最後のものが終わるときに開始することができるという意味で、スケジュールを重複させる必要があります。 E.G、私の終了日は2012年1月1日午後8時です。私は誰かを2012年1月1日と午後8時に開始するようにスケジュールすることができます。
これを考えて助けが必要です。
これは多くの場合データベース固有のもので、実際に使用している特定のRDBMS(Oracle、MySQLなど)で実際にタグ付けする必要があります。 – Ben
開始日と終了日の完全な日付/時刻を格納して比較する場合は、同じロジックを使用しないでください。 「1/1/2012 20:00」の開始時刻は、「1/1/2012 20:00」の終了時刻と重複してはならない。 – mellamokb