我正在寻找在过去questians,但没有找到我一直在寻找的,在我的web应用程序,我需要得到以表中的所有记录,其中订单,其中订单在certian转变:当他们不在同一天时,我如何在两个日期之间得到一个时间?
一个班次只有一个开放日期和一个shiftTypes中的记录ID。
shiftTypes持有移(隐含的)的开始和结束的
现在,人们与系统所有的工作时间,他们可以输入命令yestorday早晨和今日早盘的时间。
有些转变是在夜间,所以一些订单在转移是在一天和一些其他的。
我的问题是,当我试图得到一个班次中的订单时,我在班次的两个时间段内(通过班次类型)获得所有记录的贝克,但是对于错误的班次(这是yestorday夜晚例如扰)... ofcourse这种情况发生,并能onlyu发生的是在一夜之间,并延伸了两个diferent天班,becouse这两天在他们同样的时间....
我怎样才能得到我的转变记录?附:通过shiftId不工作....
----DEMO: spShiftCloseZ @Date='2010-10-11'
alter procedure spShiftCloseZ
@Date date
as
declare @ShiftID smallint
declare @ShiftDate date
declare @StartTime time(7)
declare @EndTime time(7)
set @ShiftID = (select top 1 ShiftID from dbo.Shifts order by ShiftID desc)
set @ShiftDate = (select ShiftDate from dbo.Shifts where ShiftID = @ShiftID)
set @StartTime = (select StartTime from dbo.Shifts s,dbo.ShiftTypes st
where s.ShiftTypeID=st.ShiftTypeID and ShiftID = @ShiftID)
set @EndTime = (select EndTime from dbo.Shifts s,dbo.ShiftTypes st
where s.ShiftTypeID=st.ShiftTypeID and ShiftID = @ShiftID)
select OrderID,
Total
from dbo.Orders
where OrderDate between @ShiftDate and @Date
--and
--OpenTime between @StartTime and @EndTime
select SUM(NumOfDiners) as NumOfDiners,
SUM(Total) as TotalAmount,
OrderDate
from dbo.Orders
where OrderDate between @ShiftDate and @Date
and
OpenTime between @StartTime and @EndTime
group by OrderDate
10 :-)
10x :-)你可以看到我已经解决了这个问题,但是我感谢你的努力:-)我想我必须问奎斯蒂恩,并且吸一口雪茄来清理我的头......:-) – Erez 2010-10-11 12:53:50
+1,'你应该创建开始和结束的日期时间值,如果你有独立的日期和时间,你必须做更复杂的比较才能使其工作。 – 2010-10-11 13:06:28