반응형
MASTER..SPT_VALUES의 데이블 데이터 템플릿으로 생각됩니다.
일정 기간의 날짜 또는 주차 등의 데이터를 만들경우 유용하게 사용 할 수 있습니다.
MASTER..SPT_VALUES의 TYPE이 'P'인 데이터를 이용하여 날짜, 주차를 구하는 쿼리입니다.
SELECT * FROM MASTER..SPT_VALUES WHERE TYPE = 'P'
1. 시작일 종료일로 날짜 데이터 쿼리
SELECT CONVERT(VARCHAR, DATEADD(D, NUMBER, '2021-07-01'), 23)
FROM MASTER..SPT_VALUES
WHERE TYPE = 'P'
AND NUMBER <= DATEDIFF(D, '2021-07-01', '2021-07-31')
2. 시작일 종료일로 주차 데이터 쿼리
SELECT DATEPART(YEAR, EDATE) YEAR,
DATEPART(WEEK, EDATE) WEEK,
CASE WHEN MONTH(SDATE) <> MONTH(EDATE) AND DAY(EDATE) < 4 THEN MONTH(SDATE) ELSE MONTH(EDATE) END MONTH,
CONVERT(VARCHAR, SDATE, 23) SDATE,
CONVERT(VARCHAR, EDATE, 23) EDATE
FROM (SELECT NUMBER,
DATEADD(DAY, (1 + NUMBER) * 7 - DATEPART(WEEKDAY, CONVERT(DATE, '2021-07-01')) - 6, CONVERT(DATE, '2021-07-01')) SDATE,
DATEADD(DAY, (1 + NUMBER) * 7 - DATEPART(WEEKDAY, CONVERT(DATE, '2021-07-01')), CONVERT(DATE, '2021-07-01')) EDATE
FROM MASTER..SPT_VALUES
WHERE TYPE = 'P'
AND NUMBER < CEILING(DATEDIFF(DD,
DATEADD(DD, 1 - DATEPART(DW, '2021-07-01'), '2021-07-01'),
DATEADD(DD, 7 - DATEPART(DW, '2021-07-31'), '2021-07-31')
) / 7.0
)
) A
반응형
'데이터베이스 > MSSQL' 카테고리의 다른 글
MSSQL FORMAT 문자를 활용한 DATETIME 표시하기 (1) | 2021.07.29 |
---|---|
MSSQL에서 오라클 MINUS 사용하기 (0) | 2021.07.19 |
MS SQL 버전 확인 (0) | 2021.03.03 |
MSSQL 스키마(소유자) 변경하기. (0) | 2018.09.19 |
MSSQL에서 Openquery를 사용하지 않고 Linked Server에 쿼리 수행하기 (0) | 2017.12.28 |
댓글