在MS SQL Server中,获取某一年的天数。
你可以先参考下面这篇《获取指定日期所属年份的第一天日期或最后一天日期》 https://www.cnblogs.com/insus/p/10839469.html
就可以使用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
函数例子:
如果你能参考到这篇《指定日期,判断其所属年份是否为闰年》 https://www.cnblogs.com/insus/p/10841868.html
获取年份的天数,这个函数会更简单:
平年的天数为365天,只在判断是否为闰年,如果是,即在平年的天数加1天即可: