2010-05-19 156 views
1

如何創建一個接受開始和結束日期的存儲過程(例如4月1日至4月三十〇日SQL存儲過程:營業時間

1)獲取工作日包括星期六X(值)。 +
2.)Get Holidays x(a value)

並返回總數。

我是新手,我想這應該是一個tsql函數。哼。

任何幫助,將不勝感激。

感謝

回答

1

解決這個問題的最簡單的方法是創建一個包含你可能要考慮每天值的日曆表。然後,您可以添加指示是營業日還是假日的列。就這樣,問題就變得簡單了:

Select .. 
From Calendar 
Where IsBusinessDay = 1 
    And Calendar.[Date] Between '2010-04-01' And '2010-04-30' 

如果你想天的計數,然後你可以這樣做:

Select Sum(Case When IsBusinessDay = 1 Then 1 Else 0 End) As BusinessDayCount 
    , Sum(Case When IsHoliday = 1 Then 1 Else 0 End) As HolidayCount 
From Calendar 
Where Calendar.[Date] Between '2010-04-01' And '2010-04-30' 
+0

+1這與我的想法大致相同。這一定是一個可行的解決方案! =) – 2010-05-19 00:55:26

0

首先,你需要將所有的節假日存儲到一個獨立的表(聖誕節,復活節,元旦等各自的日期(通常在午夜時分));其次,您將不得不在臨時表中生成辦公日的日期,然後排除Holidays表中包含的日期。第三,如果您在不同的日子有不同的工作時間,您可以根據當天的情況將辦公時間設置爲這些日期。

這是你找到合適的代碼實現的算法。

讓我知道這是否有幫助!