날짜 나는 당신이 당신의 데이터베이스에 "날짜"테이블을 만들 것을 제안한다. 필자는 날짜에 관한 특정 속성뿐만 아니라 이러한 유형의 요구 (비록 그것이 포함될지라도, 삼각형 조인)를 기억화 (그리고 중앙화)하는데 매우 유용한 "날짜"표를 찾는다.
날짜 테이블을 생성
... 그것은 꽤 똑바로 앞으로이고 그들이 네이티브 SQL 서버 기능을 사용하여 계산 될 수있는 무언가 경우에도 열이 그것을로드 주시기
. 물리적으로 저장하면 성능이 향상되고 유연성이 향상됩니다.
create table Dt (
Dt date primary key clustered,
BestDayEverBit bit not null default(0));
insert Dt (Dt)
select top (100000)
dateadd(day, (row_number() over (order by (select null))), convert(date, '1900'))
from sys.all_columns a
cross join sys.all_columns b;
쿼리 ...
declare
@BegDt date = '2016-02-03',
@EndDt date = '2016-02-13';
select *
from Dt
where Dt >= @BegDt
and Dt < @EndDt;
결과
Dt BestDayEverBit
---------- --------------
2016-02-03 0
2016-02-04 0
2016-02-05 0
2016-02-06 0
2016-02-07 0
2016-02-08 0
2016-02-09 0
2016-02-10 0
2016-02-11 0
2016-02-12 0
희망이 도움이됩니다.
빠른 Google 검색은 다음과 같습니다. 1. http://stackoverflow.com/questions/11141507/how-to-generate-a-range-of-dates-in-sql-server 2. http : // stackoverflow. com/questions/7824831/generate-dates-between-dates-ranges 3. http://stackoverflow.com/questions/17529860/how-to-list-all-dates-between-two-dates 4. http : // stackoverflow.com/questions/23290454/get-all-dates-between-two-dates-in-sql-server –