Tuesday, May 26, 2009

IsLeapYear or Not in SqlServer

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

Output


select dbo.fn_IsLeapYear(1900) as 'IsLeapYear?'
--0
select dbo.fn_IsLeapYear(2000) as 'IsLeapYear?'
--1
select dbo.fn_IsLeapYear(2007) as 'IsLeapYear?'
--0
select dbo.fn_IsLeapYear(2008) as 'IsLeapYear?'
1
select dbo.fn_IsLeapYear(2009) as 'IsLeapYear?'
0


No comments:

Post a Comment