动态显示参数控件,我按资料写的SQL语句,但是查询数据查不出来,望指教。(所用数据库为oracle)


FineReport zhangjl01 发布于 2018-12-15 17:47
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
5
影丶Lv5高级互助
发布于2018-12-15 19:36(编辑于 2018-12-16 15:15)

oracle中对时间字段的处理方式有误,参考:https://www.cnblogs.com/ggll611928/p/5976468.html

SELECT * FROM Z_ONDUTY A 
  WHERE 1 = 1
  ${if(type=="日报","AND TO_DATE(A.RECORDTIME,'YYYY-MM-DD')='"+format(date,"yyyy-MM-dd")+"'",
  if(type=="月报","AND TO_CHAR(TO_DATE(A.RECORDTIME,'YYYY-MM-DD'),'YYYY-MM')='"+format(todate(date(year,month,"01")),"yyyy-MM")+"'",
  "AND TO_CHAR(TO_DATE(A.RECORDTIME,'YYYY-MM-DD'),'YYYY')='"+year+"'"))}

需要注意的是,报表日期参数的格式必须与数据库日期字段的格式完全一致,且数据类型也是一致的才能查询出数据,我这里已经把大部分的日期做了 格式处理(但性能有影响),你可以参考下


  • zhangjl01 zhangjl01(提问者) 我更换了时间字段的处理方式,用strdatetime来处理,还是报错啊
    2018-12-16 14:29 
  • 影丶 影丶 回复 zhangjl01(提问者) 用to_char(时间字段,显示格式),如:to_char(sysdate,\'yyyy-mm-dd\')
    2018-12-16 14:33 
  • zhangjl01 zhangjl01(提问者) 回复 影丶 还是无法查询出数据
    2018-12-16 14:48 
  • 影丶 影丶 回复 zhangjl01(提问者) 编辑了回答,你看一下吧,报表参数的格式必须数据库日期字段的格式完全一致才可以
    2018-12-16 15:16 
  • zhangjl01 zhangjl01(提问者) 我按照你的做的相应的修改,数据能查出来,但是参数没有用了。
    2018-12-16 15:43 
  • 2关注人数
  • 412浏览人数
  • 最后回答于:2018-12-16 15:15
    请选择关闭问题的原因
    确定 取消
    返回顶部