日期:2014-05-18  浏览次数:20374 次

请教一个判断时间段覆盖的问题!!
需求如下:
假设需插入的表就2个字段   fromtime,totime,代表开始时间和结束时间是个时间段
fromtime肯定小于totime

现要插入新的记录(也是一个时间段),需判断新记录的时间段是否和表内的时间段有重叠的地方,重叠的话则不允许插入

比如表内已有时间段2007/6/1-2007/8/1
则2007/5/1-2007/7/1和2007/7/1-2007/9/1和2007/5/1-2007/9/1都不允许插入

请教如何判断?



------解决方案--------------------
--假設要插入 "2007-07-02 ", "2007-07-16 "
If Exists(Select 1 From @tt Where ( '2007-07-02 ' Between fromtime And totime) Or ( '2007-07-16 ' Between fromtime And totime))
Print '重復時間段 '
Else
Print '非重復時間段 '