if 年能被4整除 begin if 年不能被100整除 闰年 else begin if 年能被400整除 闰年 end end
if (年能被4整除 and 年不能被100整除) or 年能被400整除 begin 闰年 end if DAY(某年3月1日-1)=29 闰年 begin 闰年 end
declare @year as varchar(10) set @year='2003' if isdate(@year + '-2-29')=1 print '闰年' else print '平年'
看了上面的几位朋友的解答,我来总结写个函数:/*判断闰年*/ 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')
begin
if 年不能被100整除
闰年
else
begin
if 年能被400整除
闰年
end
end
begin
闰年
end
if DAY(某年3月1日-1)=29 闰年
begin
闰年
end
set @year='2003'
if isdate(@year + '-2-29')=1
print '闰年'
else
print '平年'
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')