输入日期时检查闰年的存储过程

时间:2014-03-13 06:32:28

标签: procedure

我想写一个程序来检查输入的日期是否是闰年。请帮助我。

1 个答案:

答案 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月,所以它必须是闰年!如果没有,那不是闰年。