SQL Server에서 날짜 범위를 생성하는 방법은 무엇입니까?
Jan 15, 2025 am 07:44 AMSQL Server 내에서 날짜 범위 생성
데이터베이스 관리자는 날짜 범위로 테이블을 채워야 하는 경우가 많습니다. 이 문서에서는 이를 달성하기 위한 효율적인 SQL Server 방법을 보여줍니다.
한 가지 일반적인 기술은 ROW_NUMBER()
하위 쿼리를 사용하여 숫자 시퀀스를 생성합니다.
DECLARE @StartDate DATE = '20110901'; DECLARE @EndDate DATE = '20111001'; 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);
이 하위 쿼리는 일련의 숫자를 생성한 다음 DATEADD()
각 숫자만큼 시작 날짜를 증가시켜 날짜 범위를 생성합니다.
기존 집계 테이블을 활용하는 보다 성능이 뛰어난 대안은 다음과 같습니다(사용 가능한 경우).
SELECT DATEADD(DAY, nbr, @StartDate) FROM nbrs WHERE nbr <= DATEDIFF(DAY, @StartDate, @EndDate);
이는 재귀 쿼리를 방지하여 긴 날짜 범위를 처리할 때 상당한 속도 이점을 제공합니다. 집계 테이블에는 사전 생성된 일련의 숫자가 포함되어 있어 즉석에서 숫자를 생성할 필요가 없습니다.
위 내용은 SQL Server에서 날짜 범위를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?
