집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 주어진 두 날짜 사이에 일련의 날짜를 생성하는 방법은 무엇입니까?
SQL Server에서 날짜 범위 생성
SQL Server에서는 여러 가지 방법을 사용하여 테이블에 지정된 두 날짜 사이의 날짜 범위를 채우는 작업을 단순화할 수 있습니다. 효율적인 방법은 숫자 테이블이나 계산 테이블을 사용하여 일련의 정수를 생성하는 것입니다.
'2011-09-01'과 '2011-10-10' 사이의 날짜로 테이블을 채우라는 요청에 따라 다음 솔루션을 구현할 수 있습니다.
<code class="language-sql">DECLARE @StartDate DATE = '20110901' , @EndDate DATE = '20111010' SELECT DATEADD(DAY, nbr - 1, @StartDate) FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY c.object_id ) AS nbr FROM sys.columns c ) nbrs WHERE nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)</code>
이 코드는 1부터 시작 날짜와 종료 날짜 사이의 차이까지의 정수 목록을 생성합니다. 각 정수에서 1을 빼고 시작 날짜에 더하면 '2011-09-01'로 시작하고 '2011-10-10'으로 끝나는 날짜 테이블이 생성됩니다.
또는 0부터 시작하는 계산표를 사용하여 계산을 단순화할 수도 있습니다.
<code class="language-sql">CREATE TABLE [dbo].[nbrs]( [nbr] [INT] NOT NULL ) ON [PRIMARY] INSERT INTO dbo.nbrs (nbr) SELECT nbr-1 FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY c.object_id ) AS nbr FROM sys.columns c ) nbrs DECLARE @StartDate DATE = '20110901' , @EndDate DATE = '20111010' SELECT DATEADD(DAY, nbr, @StartDate) FROM nbrs WHERE nbr <= DATEDIFF(DAY, @StartDate, @EndDate)</code>
데이터베이스에 숫자 테이블을 영구적으로 저장하면 향후 쿼리에 다시 사용할 수 있으므로 하위 쿼리와 재귀가 필요하지 않아 성능과 효율성이 보장됩니다.
위 내용은 SQL Server에서 주어진 두 날짜 사이에 일련의 날짜를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!