查询是要列出当前选择年份及当前年份前四年的数据

FineReport 帆软用户BgY7D4i1Xh 发布于 2022-8-30 09:46 (编辑于 2022-8-30 09:47)
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
axingLv6专家互助
发布于2022-8-30 10:10

select * from table where left(日期,4) between '${year-4}' and '${year}'

最佳回答
0
snrtuemcLv8专家互助
发布于2022-8-30 09:53(编辑于 2022-8-30 09:54)

以MySQL数据库【精确:年月日】查询为例:

select * from tabname where LEFT(日期字段,4) > '${控件名-4}'

=============sqlserver

    SUBSTRING(日期字段,1,4)  或 LEFT(日期字段,4)

=============oracle

    substr(日期字段,1,4)

  • 帆软用户BgY7D4i1Xh 帆软用户BgY7D4i1Xh(提问者) 这样的只要比他大的日期都会出来吧,目前只要所选年份的前4年,sql server 数据库
    2022-08-30 10:12 
  • snrtuemc snrtuemc 回复 帆软用户BgY7D4i1Xh(提问者) 那就再加 LEFT(日期字段,4) > \'${控件名-4}\' and LEFT(日期字段,4) < \'${控件名}\' 这样就可以,注意,评论会在自动引号前加斜杠,自己删除
    2022-08-30 10:15 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-8-30 09:54

又是一个0分

image.png

找个能拖开点么?还所有你这是什么数据库?

  • 帆软用户BgY7D4i1Xh 帆软用户BgY7D4i1Xh(提问者) 不能,数据库是SQL SERVER 现在需要在选择2022时,自动扩展出2022年及前四年的年份
    2022-08-30 10:09 
  • Z4u3z1 Z4u3z1 回复 帆软用户BgY7D4i1Xh(提问者) where SUBSTRING(YEAR_MONTH,1,4)>=\'${INT(年份控件)-4}\' and SUBSTRING(YEAR_MONTH,1,4)<=\'${年份控件}\'
    2022-08-30 10:14 
最佳回答
0
zzy1990Lv3见习互助
发布于2022-8-30 09:58

这种一般就是sql处理好最简单,看数据粒度,数据到月份的话,历史年份还要过滤选择12月份,

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