【问题标题】:Stored Procedure to check leap year when entering the date输入日期时检查闰年的存储过程
【发布时间】:2014-03-13 06:32:27
【问题描述】:

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

【问题讨论】:

标签: procedure


【解决方案1】:

以下标量函数以年份为参数,并返回一个位标志,指示传入的年份是否为闰年。

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 函数提取),那么我们仍在二月,所以它一定是闰年!如果不是,则不是闰年。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    相关资源
    最近更新 更多