매개변수 사이의 날짜로 임시 테이블 채우기
첫 번째 날을 포함하여 두 날짜 매개변수 사이의 날짜로 임시 테이블을 채우려면 월별로 다음 접근 방식을 고려하십시오.
1단계: 재귀 공통 테이블 표현식 생성 (CTE)
;WITH cte AS ( SELECT CASE WHEN DATEPART(Day,@StartDate) = 1 THEN @StartDate ELSE DATEADD(Month,DATEDIFF(Month,0,@StartDate)+1,0) END AS myDate UNION ALL SELECT DATEADD(Month,1,myDate) FROM cte WHERE DATEADD(Month,1,myDate) <= @EndDate )
2단계: CTE에서 날짜 선택
SELECT myDate FROM cte OPTION (MAXRECURSION 0)
예:
@StartDate = '2011-01-01' 및 @EndDate = '2011-08-01', 다음 날짜가 임시 테이블에 반환됩니다.
2011-01-01 2011-02-01 2011-03-01 2011-04-01 2011-05-01 2011-06-01 2011-07-01 2011-08-01
참고:
이 접근 방식은 다음과 같은 경우를 처리합니다. @StartDate는 다음 달 1일부터 재귀를 시작하여 해당 월의 1일이 아닙니다. 관계없이 @StartDate로 시작하려면 CTE 정의의 내부 SELECT 문에서 1을 제거하세요.
위 내용은 두 매개변수 사이의 날짜로 임시 테이블을 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!