在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天即可: