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中,没有仅限日期和时间的数据类型。只有日期时间。关于午夜之前/之后,现在我不会包含该功能 –