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