> 데이터 베이스 > MySQL 튜토리얼 > 두 매개변수 사이의 날짜로 임시 테이블을 채우는 방법은 무엇입니까?

두 매개변수 사이의 날짜로 임시 테이블을 채우는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-28 13:46:11
원래의
857명이 탐색했습니다.

How to Populate a Temporary Table with Dates Between Two Parameters?

매개변수 사이의 날짜로 임시 테이블 채우기

첫 번째 날을 포함하여 두 날짜 매개변수 사이의 날짜로 임시 테이블을 채우려면 월별로 다음 접근 방식을 고려하십시오.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿