createfunction fn_test(@yearvarchar(04), @monthvarchar(02)) returns@ttable([date]datetime) AS begin declare@begindatetime, @enddatetime select@begin=convert(datetime,@year+'-'+@month+'-01') select@end=dateadd(day,-1,dateadd(month,1,@begin)) insertinto@tselect@begin while@begin<@end begin insertinto@tselectdateadd(day, 1, @begin) set@begin=dateadd(day, 1, @begin) end return end select*from fn_test('2007', '02')