我目前要获取这样的时间段:
以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' --晚班这样的时间段,如何把日期变成自动检索当天与后一天?也就是说日期不固定,时间是固定的~
求救!
以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' --晚班这样的时间段,如何把日期变成自动检索当天与后一天?也就是说日期不固定,时间是固定的~
求救!
SELECT CONVERT(varchar(10),getdate(),120) + ' 08:00:00' ,CONVERT(varchar(10),dateadd(dd,1,getdate()),120) + ' 20:00:00'
set @dt='2011-10-11'select
@dt+dpack_date as dpack_date
from
table這樣?
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' --晚班
cast(convert(varchar(10),getdate(),120)as datetime)+'08:00:00'--直接這樣用就行了
dpack_date >=cast(convert(varchar(10),getdate(),120)as datetime)+'08:00:00'
CONVERT(varchar(8),getdate(),102)返回的是yyyy-mm-dd的格式
CONVERT(varchar(10),getdate(),120) 返回的是yyyy-mm-dd的格式
不过roy_88写的
dpack_date >=cast(convert(varchar(10),getdate(),120)as datetime)+'08:00:00' 这种形式其实就可以了
时间段范围这样写就可以了吧?
问题是还有一个晚班的时间范围,
怎样根据系统时间进行切换呢?
意思是:当系统时间到了21:00:00自动选择晚班的范围?而且涉及转天还要加一天~当系统时间到了第二天早上08:00:00自动选择当天的白班范围~
用or
如:
(....早班條件 08:00)
or
(....中班條件 21:00)
or
(....晚班條件)