我需要編寫一個sql查詢,返回兩個給定日期之間的工作日數(週一至週五)。SQL返回2個傳入日期之間的工作天數
我想知道什麼是最有效的方法來做到這一點?
SELECT --Start with total number of days including weekends
(DATEDIFF(dd,@StartDate,@EndDate)+1) --Subtact 2 days for each full weekend
(DATEDIFF(wk,@StartDate,@EndDate)*2) --If StartDate is a Sunday, Subtract 1
ELSE 0 END) --If EndDate is a Saturday, Subtract 1
FROM dual
那麼它也將有助於能夠從這個計數中刪除假期,如聖誕節和節禮日。
任何想法?
要刪除的假期,你需要在假期加盟日曆,特定於您要描述的語言環境。 – gorzan
我認爲我需要這樣做,但在計算工作日方面呢?例如,如果它已經過去了幾年,那麼它是否有效並且效率如何? – Mac
去檢查[Simlier問題](http://stackoverflow.com/questions/10929608/how-to-get-14-days-prior-to-the-given-date-avoiding-holidays) – nnnn