知/MSSQL

한달의 마지막 날짜 구하는 프로시저

채수욱 2008. 12. 17. 03:15

-- 꼼수임~

 

create proc select_maxday
@year varchar(10),
@month varchar(10)
as
begin
  declare @maxDay int

 

 if(@month >= '12')
   set @maxDay = substring(convert(char(10), cast('20'+right('0'+cast(cast(right(@year,2) as int)+1 as varchar(2)), 2)+'-01-01' as datetime)-1, 20), 9,2)
 else
   set @maxDay = substring(convert(char(10), cast('20'+right(@year,2)+'-'+right('0'+cast(cast(@month as int)+1 as varchar(2)), 2)+'-01' as datetime)-1, 20), 9,2)

 

 select @maxday
end

 

--다음으로 결과 확인.
select_maxday '2008', '07'