我想写一个程序来检查输入的日期是否是闰年。请帮助我。
答案 0 :(得分:0)
以下标量函数占用一年并返回一个位标志,指示传入的年份是否为闰年。
create function dbo.fn_IsLeapYear (@year int)
returns bit
as
begin
return(select case datepart(mm, dateadd(dd, 1, cast((cast(@year as varchar(4)) + '0228') as datetime)))
when 2 then 1
else 0
end)
end
go
Here are a few examples:
select dbo.fn_IsLeapYear(1900) as 'IsLeapYear?'
select dbo.fn_IsLeapYear(2000) as 'IsLeapYear?'
select dbo.fn_IsLeapYear(2007) as 'IsLeapYear?'
select dbo.fn_IsLeapYear(2008) as 'IsLeapYear?'
<强>解释强>
将日期作为自定义sql函数的输入 该功能需要一年,附加&#39; 0228&#39;它(2月28日)并增加一天。 如果第二天的月份是2(由DATEPART函数提取),那么我们仍然在2月,所以它必须是闰年!如果没有,那不是闰年。