如何获得第8个工作日,开始检查数据是否存在。如果确实存在设置并代表超过50%的贷款 - 将验证日期设置为当天
谢谢你关心Shehroz
答案 0 :(得分:1)
Declare @D date = '2012-12-01' -- Supply 1st of Month
Select D=max(D)
From (
Select Top 8 D=DateAdd(DD,N,@D)
From (Select N From (Values(0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13)) N(N) ) A
Where DatePart(DW,DateAdd(DD,N,@D)) between 2 and 6
) A
返回
2012-12-12
答案 1 :(得分:0)
这将为您提供结果,但我的答案列出了特定日期的所有第8个工作日。
虽然不考虑假期。如果变化很小,您也可以考虑假期。
您可以在最后top 1
上使用select
来获得一个日期。
DECLARE @start date
SELECT @start = '20160101'
;WITH n AS (
SELECT n = ROW_NUMBER() OVER (ORDER BY [object_id])
FROM sys.all_objects
), dates AS (
SELECT DATEADD(DAY, n - 1, @start) Dt
FROM n
), dayNum AS (
SELECT Dt, DATENAME(WEEKDAY, Dt) WeekDayName
, ROW_NUMBER() OVER (ORDER BY Dt) DayNumber
FROM dates
WHERE DATENAME(WEEKDAY, Dt) NOT IN ('Saturday', 'Sunday')
)
SELECT Dt, DATENAME(WEEKDAY, Dt) WeekDayName
FROM dayNum
WHERE DayNumber % 8 = 0
ORDER BY Dt