一个表table有开始日期字段BinDate和结束日期字段EndDate,我现在想出入一条记录,
这条记录的要求是:我插入的时间段不能和数据库中已有的时间段交叉和重叠。
请问我应该怎么比较简单的判断插入的这条记录时间段的合法性?

解决方案 »

  1.   

    IF EXISTS (
      SELECT 1 FROM [TABLE]
      WHERE (BinDate>@BinDate
      AND BinDate<@EndDate
      ) or
      (EndDate>@BinDate
      AND EndDate<@EndDate
      )
    )
        --出错处理
    else
       insert ...
      

  2.   

    IF EXISTS (
      SELECT 1 FROM [TABLE]
      WHERE (BinDate>=@BinDate
      AND BinDate<@EndDate
      ) or
      (EndDate>@BinDate
      AND EndDate<=@EndDate
      )
    )
        --出错处理
    else
       insert ...