指定日期,判断其所属年份是否为闰年

在ms sql server中,获取某一年的天数。

你可以先参考下面这篇《获取指定日期所属年份的第一天日期或最后一天日期》

就可以使用ms sql 的一个datediff函数算出这2个日期之间的日期间隔了。

 

declare @nowdate datetime = '2000-03-04'

select datediff(
    day,
    [dbo].[svf_firstdateoftheyear](@nowdate),
    [dbo].[svf_lastdateoftheyear](@nowdate)
) + 1

 

也可以写成一个自定义scalar-valued function:

 

set ansi_nulls on
go
set quoted_identifier on
go
-- =============================================
-- author:      insus.net
-- create date: 2019-05-09
-- update date: 2019-05-09
-- description: 获取指定日期所属年份的天数
-- =============================================
create function [dbo].[svf_daysoftheyear]
( 
    @theyear datetime 
)
returns int
as
begin
    return datediff(
    day,
    [dbo].[svf_firstdateoftheyear](@theyear),
    [dbo].[svf_lastdateoftheyear](@theyear)
) + 1
end

 

函数例子:

 

如果你能参考到这篇《指定日期,判断其所属年份是否为闰年》

获取年份的天数,这个函数会更简单:

 

平年的天数为365天,只在判断是否为闰年,如果是,即在平年的天数加1天即可:

 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐