例如 订单表rev  字段:rom date1  date2 三个字段分别是:房号  开始日期 结速日期
现在表里有三个记录  1:   0401    2009/06/08     2009/06/11
 2:   0401    2009/06/19     2009/06/21        2:   0401    2009/07/01     2009/07/21
我现在要做新的订单,输入起始日期与结速日期如果与表的记录有冲突(日期)时给提示,怎么做才能判断出来,有样例最好              

解决方案 »

  1.   

    去select就是了,把起始日期作为两个条件,去查询数据库,如果有一样的,就是有冲突
      

  2.   

    有样例最好   有分最好。select between and  然后提示!!!
      

  3.   


    d1,d2是你输入的两个日期变量,string型
    var
      d1,d2:string;
    begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Text := 'select * from rev where 开始日期='+QuotedStr(d1)+' and 结速日期='+QuotedStr(d2);
      ADOQuery1.Open;
      if ADOQuery1.RecordCount > 0 then
        ShowMessage('有冲突')
      else
        ShowMessage('没有冲突');
    end;
      

  4.   

    设新增的订单,开始日期d1,结束日期d2
    select * from rev where 
    (date1<='''+(d1)+''' and date2>='''+(d1)+''') or
    (date1<='''+(d2)+''' and date2>='''+(d2)+''') 
    只要开始日期或结束日期有一个日期与原有订单的日期重叠,则判断有冲突.
      

  5.   

    select * from rev 
    where roomno='0401' and
          ((sdate<=d1 and d1<=edate) or (sdate<=d2 and d2<=edate))