获取某一年的天数

在MS SQL Server中,获取某一年的天数。

你可以先参考下面这篇《获取指定日期所属年份的第一天日期或最后一天日期》 https://www.cnblogs.com/insus/p/10839469.html


就可以使用MS SQL 的一个DATEDIFF函数算出这2个日期之间的日期间隔了。

获取某一年的天数_第1张图片

 

DECLARE @nowDate DATETIME = '2000-03-04'

SELECT DATEDIFF(
    DAY,
    [dbo].[svf_FirstDateOfTheYear](@nowDate),
    [dbo].[svf_LastDateOfTheYear](@nowDate)
) + 1
Source Code

 

也可以写成一个自定义Scalar-valued Function:

获取某一年的天数_第2张图片

 

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
Source Code

 

函数例子:

获取某一年的天数_第3张图片

 

如果你能参考到这篇《指定日期,判断其所属年份是否为闰年》 https://www.cnblogs.com/insus/p/10841868.html

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

获取某一年的天数_第4张图片

 

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

获取某一年的天数_第5张图片

 

转载于:https://www.cnblogs.com/insus/p/10840807.html

你可能感兴趣的:(获取某一年的天数)