判断指定年份是否为闰年,insus.net也曾经写过2篇《判断是否是闰年》和
《指定日期,判断其所属年份是否为闰年》
set ansi_nulls on
go
set quoted_identifier on
go
-- =============================================
-- author: insus.net
-- create date: 2019-07-01
-- update date: 2019-07-01
-- description: 指定年份是否为闰年
-- =============================================
create function [dbo].[svf_isleapyear] (
@year smallint
)
returns bit
as
begin
declare @rtv bit = 0
if (@year >= year([dbo].[svf_lowdate]()) and @year <= year([dbo].[svf_highdate]()))
and ((@year % 4 = 0 and @year % 100 != 0) or @year % 400 = 0)
set @rtv = 1
return @rtv
end
go
上面函数中,还有另外2个自定义函数,可以参考这篇《ms sql获取最大值或最小值日期的函数》
ms sql 最小年份为1753和最大年份为9999。