안녕하세요..
날짜에 대해 그 달안에서 몇번째 주에 속하는지 알려고 합니다.
select DATEPART(WEEK,'2011-08-29') 할경우 1년을 기준으로 리턴을 주는데..
8월달을 기준으로 몇번째 주인지 알수 있는 방법이 없는지요??
일요일 ~ 토요일 한주 기준이시라면
DECLARE @Date DATETIME
SET @Date = '2011-08-06 00:00:00'
SELECT DATEDIFF(WEEK, 0, @Date) - DATEDIFF(WEEK, 0, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0)) + 1
DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0) 이런식으로 쓰면 달의 1일이 나옵니다.
DATEDIFF(WEEK,........... 를 써서
지정한 날이 해당년도의 몇번째주인지 구하고
지정한 날의 달의 1일이 해당년도의 몇번째주인지 구해서
뺀다음에 + 1을 하면 됩니다.
월~일요일이 한주 기준이면 이렇게도 됩니다.
SET @Date = '2011-08-07 00:00:00'
SELECT (DATEPART(DD, WeekStartDate) + 6) / 7 AS [WEEK] FROM ( SELECT @Date - (DATEPART(DW,@Date + 5) % 7) AS WeekStartDate ) AS a
월요일로 바꾼 다음에, 더하기 6 나누기 7 해서 그 월요일이 달의 몇번째 주인지 계산하는 형식입니다.