我的一个表里面有两个
字段一个开始时间(starttime)
一个结束时间(endtime)我现在想把一个时间段尽量靠前的插入到表中
但不要跟表中已经有的数据(也就是已经存在的时间段冲突)大家帮忙看看  怎么样编写存储过程或者函数
刚刚发的 怎么不见了

解决方案 »

  1.   

    starttime 直接添加默认值 getdate() 不行?
      

  2.   

    不知道看懂了没有select min(starttime) from tb 就是最早的时间了,肯定不会冲突
      

  3.   

    可能尽量靠前 有点误导大家我重新表述下  表中有两个个栏位  
    一个是开始时间(starttime)
    一个是结束时间(endtime)这样对于表每一行的数据  就可以根据结束时间和开始时间   得出每行的时间段 现在我等于是向表中插入一行数据   这个数据时间段(distancetime)我是知道的 并且还知道理想开始时间(requirestarttime)现在要向表中插入这行数据尽量使开始时间靠近理想开始时间,如果相同肯定是最好的,并且这个
    插入的时间段不能跟表中已有的时间段相冲突
     
      

  4.   

    不知道你的冲突是怎么定义的。
    现在插入的时间段的endtime < select min(starttime) from table_name 应该就不会有重复的时间段。
      

  5.   

    冲突情况下,以下查询有结果
    select *
    from tableName
    where requirestarttime between starttime and endtime
      

  6.   

    是这个意思吗?declare @tb table(dt1 datetime,dt2 datetime,H as datediff(minute,dt1,dt2))
    insert into @tb
    select '2013/01/01 08:00','2013/01/01 09:00' union all
    select '2013/01/01 09:30','2013/01/01 11:00' union all
    select '2013/01/01 13:00','2013/01/01 14:00'--select * from @tb
    declare @distancetime int 
    set @distancetime=80
    select MIN(dt2) from  @tb where H>=@distancetime
      

  7.   

    starseeker7 代码不对  表里的每行的时间段 大于 他的时间段是错的    应该是大于表里所有数据都没占有的时间段 就是这个不好判断