我想把当月的第一天定义为26日,最后一天为25日,怎么写个函数?
比如今天是8月1日,那么第一天为7月26日,最后一天为8月25日。
今天是8月27日,那么第一天是8月26日,最后一天为9月25日。
------解决方案--------------------
写个函数得了
- SQL code
IF OBJECT_ID('F_getmonths') IS NOT NULL DROP FUNCTION F_getmonthsGOCREATE FUNCTION F_getmonths(@n_date datetime)RETURNS @tb_month table(第一天 datetime,最后一天 datetime)ASBEGIN declare @N_day int declare @first_date datetime,@last_date datetime set @n_day=datepart(dd,@n_date) if @n_day >25 begin set @first_date=cast(cast(year(@n_date) as varchar)+'-'+cast(month(@n_date)as varchar)+'-26' as datetime) set @last_date=cast(cast(year(@n_date) as varchar)+'-'+cast(month(dateadd(mm,1,@n_date))as varchar)+'-25' as datetime) end else begin set @first_date=cast(cast(year(@n_date) as varchar)+'-'+cast(month(dateadd(mm,-1,@n_date))as varchar)+'-26' as datetime) set @last_date=cast(cast(year(@n_date) as varchar)+'-'+cast(month(@n_date)as varchar)+'-25' as datetime) end insert @tb_month select @first_date,@last_date returnENDGO