我有一個名爲「Date_Entered」的DateTime列,我需要在兩個日期之間篩選並在這兩個日期之間過濾兩次(時間可能是第二天)。這裏是我的查詢:SQL SERVER 2008在兩個日期和兩次之間篩選
Declare @StartDate DateTime
Declare @EndDate DateTime
Declare @StartTime varchar(8)
Declare @EndTime varchar(8)
SELECT Date_Entered FROM MyTable
WHERE (Date_Entered BETWEEN '1/1/2014' AND '1/1/2015')
AND (CONVERT(varchar(8), Date_Entered, 108) >= '21:00:00' OR @StartTime IS NULL)
AND (CONVERT(varchar(8), Date_Entered, 108) <= '03:00:00' OR @EndTime IS NULL) --This time value is on the next day to cover a 6-hour period
期望的結果應該顯示的日期範圍內的所有值(2014年),發生的6小時的範圍內(夜間):
2014-05-15 21:09:00
2014-08-12 02:45:00
2014-09-05 01:40:00
以上所有情況均發生在日期範圍(2014年)以及晚上9點至次日凌晨3點之間。 我的問題是,我需要搜索從下午9點和3AM發生的第二天(對於相同的日期範圍)的時間
如果我搜索時間範圍從21:00到23: 59我得到了結果,但是當第二天時間結束時,我不會得到任何結果。 任何想法如何在SQL中做到這一點。
SSRS 2012用於輸入參數的值。
Date_Entered字段是具有日期和時間的DateTime類型。
編輯你的問題和對提供樣本數據和期望的結果。目前還不清楚爲什麼你有'@ StartDate'包含一個時間組件,然後是一個單獨的時間組件。 –
時間字段還包含日期?或者就像1,2,3 .. 24一樣它是這樣的,那麼今天的日期和明天的日期不會有什麼不同 –
我編輯了我的問題以提供樣本數據。 Date_Entered字段是捕獲日期和時間的DateTime類型。 – user2536008