【发布时间】:2014-03-13 06:32:27
【问题描述】:
我想写一个程序来检查输入的日期是否是闰年。请帮助我。
【问题讨论】:
标签: procedure
我想写一个程序来检查输入的日期是否是闰年。请帮助我。
【问题讨论】:
标签: procedure
以下标量函数以年份为参数,并返回一个位标志,指示传入的年份是否为闰年。
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 函数的输入 该函数采用年份,将“0228”附加到它(2 月 28 日)并添加一天。 如果第二天的月份是 2(由 DATEPART 函数提取),那么我们仍在二月,所以它一定是闰年!如果不是,则不是闰年。
【讨论】: