반응형
MASTER..SPT_VALUES
시스템 테이블을 이용하여 특정 기간 사이에 해당하는 모든 날짜를 출력해보자
MASTER..SPT_VALUES
시스템 테이블
type 컬럼의 값을 'P'로 조회했을때
number 컬럼의 데이터가 0~2047 (최대 2048행)의 값으로 출력된다.
이를 이용하면, 특정 기간 사이에 해당하는 모든 날짜 (최대 2048개)를 출력할 수 있다.
쿼리는 다음과 같다.
SELECT CONVERT(VARCHAR, DATEADD(D, NUMBER, '시작일'), 112)
FROM MASTER..SPT_VALUES
WHERE TYPE = 'P'
AND NUMBER <= DATEDIFF(D, '시작일', '종료일')
예제
2017-02-13 ~ 2017-07-30 기간 사이에 해당하는 모든 날짜를 출력해보자
SELECT CONVERT(VARCHAR, DATEADD(D, NUMBER, '20170213'), 112) AS 'DATE'
FROM MASTER..SPT_VALUES
WHERE TYPE = 'P'
AND NUMBER <= DATEDIFF(D, '20170213', '20170730')
...
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] GROUP BY 없이 컬럼과 함께 COUNT를 조회해보자 (COUNT OVER) (0) | 2017.02.14 |
---|---|
[MSSQL] 정렬 조건 없이 순위 매기기 (순번 지정) (0) | 2017.02.14 |
[MSSQL] ORDER BY CASE (조건정렬) (0) | 2017.02.13 |
[MSSQL] 집합 연산자 UNION (합집합), INTERSECT (교집합), EXCEPT (차집합) (0) | 2017.02.13 |
[MSSQL] 문자열을 뒤에서 부터 구분자로 잘라보자 (RIGHT, REVERSE, CHARINDEX, PATHINDEX) (0) | 2017.02.13 |