2016-02-08 25 views
0

我有table1,列DATETIME,IDStatus來自SQL的最後48小時的記錄

我會在特定小時後打電話給我的存儲過程,並且我想獲取最近48個非週末時間的記錄。

我試圖通過爲getdate()的每一天寫案例來做到這一點。

我想知道做到這一點的最佳方法是什麼。

+0

你爲什麼不試試這個:http://stackoverflow.com/questions/4156011/how-to-select-rows-for-a-specific-date-ignoring- time-in-sql-server – najeeb

+0

非週末時間?這是否意味着週六和週日不計算在內?或者星期五下午五點到星期一上午八點之後? – jarlh

+0

星期六星期日不算 – smith

回答

1

爲避免週末,您可以在where中使用case或其他邏輯。在週末的日子裏,你的邏輯並不完全清楚。但在這裏是一種方法:

where (datename(wk, getdate()) in ('Sunday', 'Monday', 'Tuesday') and datetime >= dateadd(hour, 48 + 48, getdate())) or 
     (datename, wk, getdate()) in ('Wednesday', 'Thursday', 'Friday') and datetime >= dateadd(hour, 48, getdate()) or 
     (datename , wk, getdate()) in ('Saturday') and datetime >= dateadd(hour, 24 + 48, getdate()); 
+0

嗨 我確切地試過這個 – smith