집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server 2008에서 날짜 범위를 생성하는 방법은 무엇입니까?
SQL을 사용하여 날짜 범위 생성
SQL Server 2008에서는 지정된 두 날짜 사이의 날짜 범위를 포함하도록 테이블을 채우는 것이 데이터베이스 관리자에게 어려운 일입니다. 이 문제에 대한 대응으로 SQL Server 2008에 대한 실용적인 솔루션이 아래에 제공됩니다.
이 쿼리는 날짜를 생성하기 위해 일련의 숫자가 포함된 테이블을 활용합니다. 쿼리의 첫 번째 줄에서는 각각 원하는 날짜 범위의 시작과 끝을 나타내는 두 개의 변수 @StartDate 및 @EndDate를 선언합니다.
괄호 안의 하위 쿼리는 1부터 sys.columns 테이블의 행 수까지 일련의 숫자를 생성합니다. 이 하위 쿼리는 숫자 표 또는 개수 표를 대체하는 역할을 합니다. 결과 숫자는 nbr 열에 저장됩니다.
WHERE 절은 지정된 날짜 범위에 속하는 숫자만 포함하도록 숫자를 필터링합니다. 구체적으로 nbr - 1이 시작 날짜와 종료 날짜의 차이보다 작거나 같은지 확인합니다. 행 번호 지정이 1부터 시작하므로 이 계산이 조정됩니다.
각 한정 숫자에 대해 쿼리는 DATEADD 함수를 사용하여 @StartDate를 nbr - 1 값만큼 증가시킵니다. 결과는 시작 날짜부터 종료 날짜까지의 모든 날짜를 매일 한 행씩 포함하는 테이블입니다.
카운팅 테이블의 대안
카운트 테이블을 사용할 수 있는 경우 원래 쿼리의 하위 쿼리를 대체할 수 있어 보다 효율적이고 간결한 솔루션을 얻을 수 있습니다. 개수 표에는 일련의 연속 숫자가 포함되어 있으므로 날짜 범위를 생성하는 데 이상적인 소스입니다. 참고용으로 답변에 카운트 테이블을 이용한 쿼리를 제공합니다.
위 내용은 SQL Server 2008에서 날짜 범위를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!