0
我有這些列計劃表衝突:檢查是否有新的開始時間和結束時間不與現有的開始時間和結束時間在同一天
LeaveDate DateTime
Start_Time varchar
End_Time varchar
之前,我添加值,我需要一個該查詢將首先檢查我的Start_Time,End_Time和LeaveDate輸入是否與現有記錄不衝突。
這裏是我現有的記錄:
Rec LeaveDate Start_Time End_Time
1 01/01/2017 9:00:00 13:30:00
有效輸入 - 請注意,新START_TIME可以等於在同一日期的現有END_TIME:
LeaveDate Start_Time End_Time
01/01/2017 13:30:00 18:00:00
或者
LeaveDate Start_Time End_Time
01/01/2017 13:43:00 18:00:00
無效輸入:
LeaveDate Start_Time End_Time
01/01/2017 13:29:00 18:00:00
或者
LeaveDate Start_Time End_Time
01/01/2017 10:00:00 11:00:00
您應該做的第一件事是更改您的表的數據類型。 'LeaveDate'應該是'Date'類型,'Start_Time'和'End_Time'應該是'Time'類型。欲瞭解更多信息,請閱讀Aaron Bertrand [踢壞的壞習慣:選擇錯誤的數據類型](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using- the-wrong-data-type.aspx)接下來要做的是閱讀['overlap' tag wiki。](https://stackoverflow.com/tags/overlap/info) –
另外,可以安排一些東西在午夜之前開始,在午夜之後結束?如果是這樣,那會讓事情變得複雜。 –
這是在SQL Server中,沒有僅限日期和時間的數據類型。只有日期時間。關於午夜之前/之後,現在我不會包含該功能 –