我正在尋找在過去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