SQL函数获取一年中每个月的天数

第一步:编写判断一年是否是闰年的函数IsLeapYear

CREATE FUNCTION IsLeapYear( @Year INT) RETURNS BIT AS BEGIN IF (@Year % 4 = 0) and ((@Year % 100 <> 0) or (@Year % 400 = 0)) RETURN 1 RETURN 0 END

第二步:编写一年中每个月的天数函数DaysPerMonth

CREATE FUNCTION DaysPerMonth( @Year INT, @Month INT)
RETURNS INT AS  
BEGIN 
  declare @Days INT
  SET @Days =
  case @Month
  when 1 then 31
  when 2 then 28
  when 3 then 31
  when 4 then 30
  when 5 then 31
  when 6 then 30
  when 7 then 31
  when 8 then 31
  when 9 then 30
  when 10 then 31
  when 11 then 30
  else 31
  end
  
  IF (@Month = 2) and (dbo.IsLeapYear(@Year) =1)--调用第一步的闰年判断函数。
  SET @Days= @Days +1
  return @Days
END




你可能感兴趣的:(sql,天数,闰年)