mssql] 해당일자의 주간, 월간 시작~끝까지 구하기.
# 7) 데이타베이스/Ms-Sql2025. 4. 17. 20:17
일일 점검표 같은 걸 만들어줘야 하는데... 월간으로 보여줄지. 주간으로 보여줘야 할지...
범위를 고려해야 하기 때문에 둘다 구하는 쿼리를 샘플로 만들었다.
주간: 해당 일자가 포함된 주간의 일요일 ~ 토요일까지의 일자를 구한다.
월간: 해당 일자가 포함된 월의 1일 ~ 말일까지를 구한다.
* 예전에 만든 쿼리가 있긴 하네...
* 임시테이블에 넣는거...
* 오류 수정 :: 실제 적용해보니 원하던 결과가 아니었다.
04-13일요일을 설정하고 주간 정보를 보면 월요일 부터 나와야 할게 14일부터 보여져서 수정.( 04-23 )
DECLARE @TODAY DATETIME = '2025-04-13 00:00:00'
--SET @TODAY = DATEADD( MINUTE, -(8*60+30), @TODAY )
-- 일요일부터 시작하면 : DATEADD( DAY, - CASE DATEPART(WEEKDAY, @TODAY) WHEN 1 THEN 7 ELSE DATEPART(WEEKDAY, @TODAY) - 1 END + NUMBER, @TODAY)
-- 월요일부터 시작하면 : DATEADD( DAY, - CASE DATEPART(WEEKDAY, @TODAY) WHEN 1 THEN 7 ELSE DATEPART(WEEKDAY, @TODAY) - 1 END + NUMBER + 1, @TODAY)
-- 해당 날자에 주간
SELECT DATEADD( DAY, - CASE DATEPART(WEEKDAY, @TODAY) WHEN 1 THEN 7 ELSE DATEPART(WEEKDAY, @TODAY) - 1 END + NUMBER + 1, @TODAY)
FROM MASTER..SPT_VALUES
WHERE TYPE = 'P'
AND NUMBER BETWEEN 0 AND 6
-- 해당 날자에 월간
SELECT DATEADD( DAY, (-1 * (DATEPART(DAY, @TODAY) - NUMBER - 1)), @TODAY)
, DATENAME(WEEKDAY, DATEADD( DAY, (-1 * (DATEPART(DAY, @TODAY) - NUMBER - 1)), @TODAY))
FROM MASTER..SPT_VALUES
WHERE TYPE = 'P'
AND NUMBER BETWEEN 0 AND DATEPART( DAY, Eomonth( @TODAY ))-1
찾아보니 이것도 있네...
set datefirst 1 -- 월요일은 1 화요일은 2 수요일은 3 ... 일요일은 7
[출처] [ms-sql] 일주일의 시작일을 월요일로 정하기|작성자 남짱
'# 7) 데이타베이스 > Ms-Sql' 카테고리의 다른 글
SSMS 에러 해결방법!! (0) | 2021.02.16 |
---|---|
sqler 문제 풀이. (0) | 2017.05.22 |
sqler에 올라온 질문글... (0) | 2016.09.12 |
Sqler에 있는 질문에 대해 풀어봤다. (0) | 2016.05.20 |
Sqler에 있는 질문에 대해 풀어봤다. (0) | 2016.05.13 |