특정 년월의 마지막 일수를 구하는 함수를 만들었습니다.
사용법은 다음과 같습니다.
select [dbo].[FNLastDayMon]('2015-02-01')
년월만 제대로 설정해주면 됩니다. 일은 그냥 01일로 고정값으로 설정하시면 됩니다.
소스는 다음과 같습니다.
CREATE FUNCTION [dbo].[FNLastDayMon]
(
@p_date varchar(30)
)
RETURNS int
AS
BEGIN
declare @result int
declare @v_dt datetime
set @result = 0
if @p_date is not null and len(@p_date) = 10 begin
set @v_dt = DATEADD(day, -1,DATEADD(MONTH, 1,DATENAME(YEAR,@p_date) + DATENAME(month,@p_date)+'01'))
set @result = DATENAME(day,@v_dt)
end
RETURN @result
END