这本身是一个动态收尾问题,确定整两年。
日期的问题只能使用日期的函数来处理。
DECLARE @dt DATETIME
DECLARE @nextmonth DATETIME
DECLARE @daydiff int
DECLARE @dtold datetime
set @dt = '20220227'
SET @nextmonth = DATEADD(MONTH, 1, @dt)
SET @daydiff = DATEDIFF(DAY, @dt, cast(YEAR(@nextmonth) * 10000 + MONTH(@nextmonth) * 100 + 1 as varchar))
SELECT @daydiff
SET @dtold = DATEADD(DAY, -@daydiff, DATEADD(Day, 1-DAY(DATEADD(month, -23, @dt)),DATEADD(month, -23, @dt)))
select @dtold
给你写了一个SQL SERVER版本的,原理就是判断 未来某个日期距离下个月月份的天数DayNum,然后 未来日期 去掉 23个月,然后再减去 DayNum,即可得到完整的整两年的时间段。相应的你换成FR的内置函数即可。