判断当前数据是否在两年内

存在入库时间也可以获取当前时间,当碰到2月这种特殊情况的时候,2020年2月29的数据在2022年2月28的时候算最后一天,请问判断公式怎么写

FineReport 670934879 发布于 2020-4-26 11:26
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
670934879Lv6初级互助
发布于2020-4-30 10:45

rzsj between  CAST(DATEADD(YEAR,-2,GETDATE())as date) and CAST(GETDATE()as date)

最佳回答
0
zsh331Lv8专家互助
发布于2020-4-26 11:30
YEARDELTA(date, delta):返回指定日期后delta年的日期。
示例:
YEARDELTA("2008-10-10",10)等于2018-10-10。


了解下帆软内置的YEARDELTA()函数。

  • 670934879 670934879(提问者) 这个我清楚,可以明确当前时间到任意同期年份的跳转!但是如何判断后台数据库数据是否存在于这个时间段内,用fr函数加<或者>符号?
    2020-04-26 11:38 
  • zsh331 zsh331 回复 670934879(提问者) 是的,fr函数或对应数据库的日期函数加<或者>符号。
    2020-04-26 12:28 
最佳回答
0
willgood1986Lv2初级互助
发布于2020-4-27 17:24

这本身是一个动态收尾问题,确定整两年。

日期的问题只能使用日期的函数来处理。

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的内置函数即可。

  • 2关注人数
  • 482浏览人数
  • 最后回答于:2020-4-30 10:45
    请选择关闭问题的原因
    确定 取消
    返回顶部