【发布时间】:2015-12-03 11:18:47
【问题描述】:
创建表holiday master,其列名称为假日日期、日期(星期日、星期一或任何公共假日)。
创建一个函数,该函数将返回 4 个输出列:日期、月中日、年和日。 日期将是两个日期之间的工作日期(忽略假期主表中的日期)
CREATE function DATENEWww
AS
BEGIN
DECLARE @StartDate DATETIME
DECLARE @MIDDLEDATE DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = '2013/05/01'
SET @EndDate = '2013/05/10'
SELECT getday()'Day', getDATE() 'Today', YEAR(GETDATE()) 'YEAR Part'
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)
-(CASE WHEN DATENAME (DW, @MIDDLEDATE)='SELECT HOLIDAY_DATE FROM HOLIDAY_MASTER' THEN 1 ELSE 0 END)
END
【问题讨论】:
-
我已经用一些代码试过了,但没有得到结果
-
标记使用的 dbms,因为它们中的大多数在 PSM(又名存储过程)方面远不符合 ANSI SQL。
-
你怎么期望我们做你的工作/学业。 (要么你从我们的工作中获得报酬,要么你什么都学不到......)
-
不,事实并非如此......我已经尝试过代码......它无法正常工作
-
发布您尝试过的代码、示例数据、所需的输出。
标签: sql-server tsql