如何创建接受开始日期和结束日期的存储过程(例如4月1日 - 4月30日
1。)获取包含星期六x(值)的工作日。 +
2.)获得假期x(值)
并返回总数。
我是新手,我想这将是一个tsql函数。 HMM。
任何帮助将不胜感激。
由于
答案 0 :(得分:1)
此问题的最简单解决方案是创建一个Calendar表,其中包含您可能想要考虑的每一天的值。然后,您可以添加指示是工作日还是假日的列。有了这个,问题就变得微不足道了:
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'
答案 1 :(得分:0)
答案 2 :(得分:0)
首先,您需要将所有假期存储在一个独立的表格中(圣诞节,复活节,新年日等,以及各自的日期(通常在午夜时间));
其次,您必须在临时表中生成办公室日期的日期,然后排除假期表中包含的日期。
第三,如果您在不同的一天有不同的工作时间,您可以将办公时间设置为这些日期,具体取决于当天的工作时间。
这是您找到适当代码实现的算法。
请告诉我这是否有帮助!