年份整除4,如果00结尾的年份 要整除400
直接用  M$ 提供的日期计算函数获得,
比如2004年2月日期
可以 select convert(int,dateadd(month,1,'20040201')-'20040201')

解决方案 »

  1.   

    if 年能被4整除
    begin
      if 年不能被100整除
        闰年
      else
      begin
        if 年能被400整除
          闰年
      end
    end
      

  2.   

    if (年能被4整除 and 年不能被100整除) or 年能被400整除
    begin
         闰年
    end
    if DAY(某年3月1日-1)=29 闰年
    begin
         闰年
    end
      

  3.   

    declare @year as varchar(10)
    set @year='2003'
    if isdate(@year + '-2-29')=1
    print '闰年'
    else
    print '平年'
      

  4.   

    看了上面的几位朋友的解答,我来总结写个函数:/*判断闰年*/
    drop function f_IsLeapYear
    go
    create function f_IsLeapYear
    (
    @Year varchar(4)
    )
    returns bit
    as
    begin
    -- 方法一:
    if (@Year % 4=0 and @Year % 100<>0) or @Year % 400 = 0
    -- 方法二:if isdate(@Year + '-2-29') = 1
    -- 方法三:if day(cast((@year + '-3-1') as datetime)-1) = 29
    return 1
    return 0
    end
    go
    -- 调用
    select dbo.f_IsLeapYear('3000')
    select dbo.f_IsLeapYear('2004')