我目前要获取这样的时间段:
以2011-10-11这一天为例:dpack_date >= '2011-10-11 08:00:00' and dpack_date < '2011-10-11 20:00:00' --白班
dpack_date >= '2011-10-11 20:00:00' and dpack_date < '2011-10-12 08:00:00' --晚班这样的时间段,如何把日期变成自动检索当天与后一天?也就是说日期不固定,时间是固定的~
求救!

解决方案 »

  1.   


    SELECT CONVERT(varchar(10),getdate(),120) + ' 08:00:00' ,CONVERT(varchar(10),dateadd(dd,1,getdate()),120)  + ' 20:00:00'
      

  2.   

    declare @dt datetime
    set @dt='2011-10-11'select 
    @dt+dpack_date as dpack_date
    from 
    table這樣?
      

  3.   

    declare @nb_TODAY varchar(8),@nb_TOMORROW VARCHAR(8)
    select  @nb_TODAY  = '20111011'
    SELECT  @nb_TOMORROW =CONVERT(VARCHAR(8),DATEADD(DD,1,@nb_TODAY),112)dpack_date >= @nb_TODAY+' 08:00:00' and dpack_date < @nb_TODAY+' 20:00:00' --白班
    dpack_date >= @nb_TODAY+' 20:00:00' and dpack_date < @nb_TOMORROW+' 08:00:00' --晚班
      

  4.   


    cast(convert(varchar(10),getdate(),120)as datetime)+'08:00:00'--直接這樣用就行了
      

  5.   

    select  @nb_TODAY  = '20111011'这句应该是获取当天日期~是CONVERT(varchar(10),getdate(),120)?
      

  6.   

    是作為條件吧
    dpack_date >=cast(convert(varchar(10),getdate(),120)as datetime)+'08:00:00'
      

  7.   

    我定义当中是varchar(8),应该是CONVERT(varchar(8),getdate(),102)
    CONVERT(varchar(8),getdate(),102)返回的是yyyy-mm-dd的格式
      

  8.   

    写错了
    CONVERT(varchar(10),getdate(),120) 返回的是yyyy-mm-dd的格式
    不过roy_88写的
    dpack_date >=cast(convert(varchar(10),getdate(),120)as datetime)+'08:00:00' 这种形式其实就可以了
      

  9.   

    dpack_date >= cast(convert(varchar(10),getdate(),120)as datetime)+' 08:00:00' and dpack_date < cast(convert(varchar(10),getdate(),120)as datetime)+' 21:00:00'
    时间段范围这样写就可以了吧?
    问题是还有一个晚班的时间范围,
    怎样根据系统时间进行切换呢?
    意思是:当系统时间到了21:00:00自动选择晚班的范围?而且涉及转天还要加一天~当系统时间到了第二天早上08:00:00自动选择当天的白班范围~
      

  10.   

    是,就是作为where后面的条件~
      

  11.   


    用or
    如:
    (....早班條件 08:00)
    or
    (....中班條件  21:00)
    or
    (....晚班條件)