嗨,我正在尝试编写一个 TSQL 函数,该函数将返回 2 个日期减去周末和英国公共假期之间的工作日数,这是我到目前为止所拥有的(由于缺乏经验,可能存在语法错误等,感谢任何更正):
CREATE FUNCTION dbo.fn_WorkDays (@StartDate AS DATETIME, @EndDate AS DATETIME)
--Define the output data type.
RETURNS INT
AS
--Calculate the RETURN of the function.
BEGIN
RETURN (SELECT
(DATEDIFF(dd,@StartDate, @EndDate)+1)-(DATEDIFF(wk,@StartDate, @EndDate)*2)-(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday'THEN 1 ELSE 0 END)-(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END)
)END
GO
现在我可以访问存储英国银行假期的表格(或者如果需要,我可以复制它)这里是一个设置屏幕:
我对 TSQL 相当陌生,我正在努力寻找一种方法来查看银行列表并将它们从函数的返回 INT 中删除,因此返回传递给函数的两个日期之间的正确工作日数。
任何帮助和建议将不胜感激(特别是如果它以易于理解的形式编写;))