- 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].[tvf_DaysOfMonth]
- (
- @InputDate DATETIME
- )
- RETURNS @dump TABLE
- (
- [Date] DATETIME
- )
- AS
- BEGIN
- DECLARE @firstDayOfMonth DATETIME = DATEADD(MONTH,DATEDIFF(MONTH,0,@InputDate),0) --获取所在月份第一天日期
-
- DECLARE @daysOfMonth INT = DAY(DATEADD(DAY,-1, DATEADD(MONTH,1,@firstDayOfMonth))) --获取所在月份的天数
-
- INSERT INTO @dump ([Date]) VALUES(@firstDayOfMonth) --把第一天插入表中。
-
- DECLARE @d INT = 1
- WHILE @d < @daysOfMonth
- BEGIN
- INSERT INTO @dump ([Date]) VALUES(@firstDayOfMonth + @d)
- SET @d = @d + 1
- END
- RETURN
- END