长春理工教务管理,连云港核废料抗议,庭院怨妇
实现这个功能,先参考下面几篇博文《t-sql获取二月份天数》
可以写一个table-valued functions:
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
例子说明:
如果想更多的写法参考, insus.net更改了上面的自定义函数,先是获取指定日期所在月份的第一天日期,然后获取指定日期下一个月份的第一天日期。
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 @firstdayofnexmonth datetime = dateadd(month,1,@firstdayofmonth) --获取指定月份下一个月份的第一天日期 declare @dumpdate datetime = @firstdayofmonth while (@dumpdate < @firstdayofnexmonth) begin insert into @dump ([date]) values(@dumpdate) set @dumpdate = @dumpdate + 1 end return end
上面2个自定义函数均可以使用。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
数据库SQL---数据库、基本表、视图、索引的定义、修改、删除
在 Azure CentOS VM 中配置 SQL Server 2019 AG - (上)
在 Azure CentOS VM 中配置 SQL Server 2019 AG - (下)
网友评论