已知查询时间段,查询出对应时间段所在月份的目标数据

下图为查询时间段数据image.png

下面为目标数据存放格式,即为年月格式

1691736260175.png在不能修改上面模板参数格式的情况下,如果在模板参数选择时间,则取到对因时间所在月份的目标数据(不存在跨月取数情况,即开始日期和结束日期均处于同一月份)

image.pngimage.png

下图为Z兄弟的SQL

image.png

FineReport 我要隐匿起来 发布于 2023-8-11 14:51 (编辑于 2023-8-11 15:26)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-8-11 14:52(编辑于 2023-8-11 15:32)

SqlServer?oracle?mysql?

--------------

select * from tablename where 1=1 ${if(len(开始日期)==0,""," and CONVERT(NVARCHAR(10),MBNY+'-01')>='"+FORMAT(开始日期,"yyyy-MM-01")+"'")}

${if(len(结束日期)==0,""," and CONVERT(NVARCHAR(10),MBNY+'-01')<='"+FORMAT(结束日期,"yyyy-MM-01")+"'")}

-----------

image.png

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-8-11 15:02(编辑于 2023-8-11 15:38)

select * from b where  year(日期字段)=year('${开始日期}') and month(日期字段)=month('${开始日期}')

最佳回答
0
CD20160914Lv8专家互助
发布于2023-8-11 15:55

你既然说不存在跨月的情况,那么录入的开始与结束日期肯定是一个月的,看你截图的字段又是年月

那么直接等于这个年月不就行了???

select * from 表名称

where 1=1 

${if(len(开始日期)==0,""," and MBNY='"+FORMAT(开始日期,"yyyy-MM")+"'")}

image.png

image.png

  • 3关注人数
  • 642浏览人数
  • 最后回答于:2023-8-11 15:55
    请选择关闭问题的原因
    确定 取消
    返回顶部