그달에 마지막 주 일요일의 값을 구할 수도 있을 까요??
대략...
DECLARE @dt VARCHAR(8) DECLARE @lastdate VARCHAR(8) SET @dt = '201103' SET @lastdate = convert(VARCHAR(8), DATEADD(dd, -1, dateadd(mm, 1, @dt + '01')), 112) --마지막일의 요일을 구한 다음.. 그걸 마지막일자에서 빼주면 될 듯. SELECT DATEADD(dd, -1 *(datepart(dw, @lastDate)-1),@lastdate)
--해당 월의 마지막날 구하기
DECLARE @Endofmonth datetime
SELECT @Endofmonth = DATEADD(D, -1, DATEADD(month, DATEDIFF(month, -1, '20160331'), 0))
--마지막 일요일 구하기
Select DATEADD(dd,-( CASE WHEN DATEPART(weekday,@Endofmonth) = 1 THEN 0 ELSE DATEPART(weekday,@Endofmonth)-1 END ),@Endofmonth)
해당 월의 마지막을 구하고 해당 날짜의 요일을 숫자로 표시해주는 DATEPART(weekday,날짜)를 통해 마지막 일요일을 구합니다.