이 하나 개의 시도 -
쿼리 1 :
DECLARE
@DateFrom DATETIME
, @DateTo DATETIME
SELECT
@DateFrom = '20130101'
, @DateTo = '20130131'
DECLARE @holidays TABLE ([Date] DATETIME)
INSERT INTO @holidays ([Date])
VALUES ('20130101')
SELECT [Date]
FROM (
SELECT [Date] = DATEADD(DAY, sv.number, t.DateFrom)
FROM (
SELECT
DateFrom = @DateFrom
, diff = DATEDIFF(DAY, @DateFrom, @DateTo)
) t
JOIN [master].dbo.spt_values sv ON sv.number <= diff
WHERE sv.[type] = 'p'
) t2
WHERE t2.[Date] NOT IN (SELECT h.[Date] FROM @holidays h)
질의 2 :
SELECT t2.[Date]
FROM (
SELECT [Date] = DATEADD(DAY, sv.number, t.DateFrom)
FROM (
SELECT
DateFrom = @DateFrom
, diff = DATEDIFF(DAY, @DateFrom, @DateTo)
) t
JOIN [master].dbo.spt_values sv ON sv.number <= diff
WHERE sv.[type] = 'p'
) t2
LEFT JOIN @holidays h ON h.[Date] = t2.[Date]
WHERE h.[Date] IS NULL
을
출력 :
Date
-----------------------
2013-01-02 00:00:00.000
2013-01-03 00:00:00.000
2013-01-04 00:00:00.000
2013-01-05 00:00:00.000
2013-01-06 00:00:00.000
2013-01-07 00:00:00.000
2013-01-08 00:00:00.000
...
이 설정된 날짜에 대해 작동합니다 감사합니다,하지만 난 다른 시작 및 종료 날짜와 여러 구성원이 작업을 수행해야합니까? ID 및 시작일 및 종료일 목록이있는 별도의 쿼리 등. – FirstCape
시작일과 종료일을 데이터로 입력하십시오. – Devart
죄송합니다. 마지막 코멘트를 무시하십시오. 내가 필요한 몇 가지 추가 데이터를 혼동했다. 당신의 도움을 주셔서 감사합니다! – FirstCape