在SQLsever下用函数写出从今天往后7000天所在月份的天数!

来源:百度知道 编辑:UC知道 时间:2024/06/24 11:22:07

这个应该用存储过程来作吧。为什么用函数,你要怎么调用?

----------7000天后 的那个月的 天数
-----------网上的原理 (1)分离 7000天后的那个日期 年 月 给月份加一
----------(2)也就是 求他下个月的第一天的日期 然后在减去 1 就是 7000 天后的那个月的最后一天的日期
create function fuc_m_afterdays(@days int)
returns int
with execute as caller
as
begin
declare @date datetime,@year varchar(10), @month nvarchar(10)
set @date= dateadd(day,@days,getdate())
set @year=convert(nvarchar,year(@date))
set @month=convert(nvarchar,month(@date)+1) --原来月份加一
return day(convert(datetime,@year+'-'+@month+'-1')-1) -- 天数减去一
end

SELECT dbo.fuc_m_afterdays(7000)

select day(CONVERT(datetime,CONVERT(nvarchar,year(DateAdd(day,7000,getdate())))+'-'+CONVERT(nvarchar,month(DateAdd(day, 7000,getdate()))+1)+'-'+'1')-1)
需要写成Sql函数吗?