IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].GetMonth') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].GetMonth GO create function GetMonth (@stadate datetime,@enddate datetime) returns decimal(20,2) as begin --declare @stadate datetime,@enddate datetime declare @moths decimal(20,2) declare @day int declare @str int; --set @stadate='2013-01-29' --set @enddate='2013-10-15' set @str = 0; set @moths=0 set @day=datepart(DAY,@stadate) --判断开始日期是不是月底 if( CONVERT(varchar(10),@stadate,120)!=CONVERT(datetime, CONVERT(varchar(7),@stadate,120)+'-'+CONVERT(varchar(2),dbo.GetMonths(@stadate)))) begin select @str=1 end --select dateadd(MONTH,+1,@stadate),dateadd(day,-1,dateadd(MONTH,+2,CONVERT(datetime, CONVERT(varchar(7),@stadate,120)+'-01'))) --select dateadd(day,-1,CONVERT(datetime, CONVERT(varchar(7),@stadate,120)+'-'+convert(varchar(2),@day))) --select dateadd(day,-1,dateadd(MONTH,+1,@stadate)) --select dateadd(day,-2,dateadd(MONTH,+2,CONVERT(datetime, CONVERT(varchar(7),@stadate,120)+'-01'))),dateadd(MONTH,+2,CONVERT(datetime, CONVERT(varchar(7),@stadate,120)+'-01')) if(@str=0)--如果是月底 begin while(@stadate0) begin set @stadate= dateadd(day,+1,@stadate) end end if(@stadate
mysql算两月份的差_sql计算两个时间月份之差
最新推荐文章于 2024-08-13 18:00:00 发布