请问我设置了如下sql语句,在finereport中日期控件中设置了日期怎么查不到记录?
where 1=1 and TO_CHAR(O.Requestedshipdate + 8 / 24, 'yyyy-mm-dd hh24:mi')>='${start_date}' and TO_CHAR(O.Requestedshipdate + 8 / 24, 'yyyy-mm-dd hh24:mi')<='${end_date}' ${if(len(wbdh)==0,"","and O.EXTERNORDERKEY =('"+wbdh+"')")} ${if(len(wlbm)==0,"","and OD.SKU =('"+wlbm+"')")} ${if(len(scdd)==0,"","and o.notes =('"+scdd+"')")} ${if(len(ckdlx)==0,"","and ot.description =('"+ckdlx+"')")}
neyhig 发布于 2020-12-21 16:17
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
zsh331Lv8专家互助
发布于2020-12-21 16:58(编辑于 2020-12-21 17:07)
select * from tabname 
where 1=1 
-- 排查方向
-- 先执行select TO_CHAR(O.Requestedshipdate + '8 / 24', 'yyyy-mm-dd hh24:mi') -- 查看结果是什么= =#,与参数值能匹配?
and TO_CHAR(O.Requestedshipdate + '8 / 24', 'yyyy-mm-dd hh24:mi') >= '${start_date}' 
and TO_CHAR(O.Requestedshipdate + '8 / 24', 'yyyy-mm-dd hh24:mi') <= '${end_date}' 
-- 注意参数wbdh的分隔符',' -- wlbm,scdd,ckdlx雷同
-- =号切换成in
${if(len(wbdh) =0,"","and O.EXTERNORDERKEY IN ('"+wbdh+"')")}
${if(len(wlbm) =0,"","and OD.SKU IN ('"+wlbm+"')")} 
${if(len(scdd) =0,"","and o.notes IN ('"+scdd+"')")} 
${if(len(ckdlx)=0,"","and ot.description IN ('"+ckdlx+"')")}

===========

select * from tabname 
where 1=1 

-- 排查方向
-- 先执行select TO_CHAR(O.Requestedshipdate + '8 / 24', 'yyyy-mm-dd hh24:mi') -- 查看结果是什么= =#,与参数值能匹配?

${if(len(start_date)=0 && len(end_date)=0,""," and 过滤语句")}
-- and TO_CHAR(O.Requestedshipdate + '8 / 24', 'yyyy-mm-dd hh24:mi') >= '${start_date}' 
-- and TO_CHAR(O.Requestedshipdate + '8 / 24', 'yyyy-mm-dd hh24:mi') <= '${end_date}' 
-- 注意参数wbdh的分隔符',' -- wlbm,scdd,ckdlx雷同
-- =号切换成in

${if(len(wbdh) =0,"","and O.EXTERNORDERKEY IN ('"+wbdh+"')")}
${if(len(wlbm) =0,"","and OD.SKU IN ('"+wlbm+"')")} 
${if(len(scdd) =0,"","and o.notes IN ('"+scdd+"')")} 
${if(len(ckdlx)=0,"","and ot.description IN ('"+ckdlx+"')")}


  • neyhig neyhig(提问者) 请问如果更改sql语句才可以设置日期控件内容为空时查询全部呢?
    2020-12-21 17:03 
  • zsh331 zsh331 回复 neyhig(提问者) 后面的语句自己去拼接,要学会排查问题,每个过滤条件分开注销逐步排查= =#
    2020-12-21 17:07 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-12-21 16:19(编辑于 2020-12-21 16:48)

注意日期格式要一致啊,不如全部成yyyy-MM-dd格式回、或者yyyy-MM-dd hh:mm:ss格式

  where 1=1 $if{and(len(start_date)=0,len(end_date)=0),"","and to_date(O.Requestedshipdate,'yyyy-mm-dd')  between '"+start_date+"' and '"+end_date+"'"}


  • neyhig neyhig(提问者) 请问数据库里的日期都是2012-01-24 01:00这种格式,我该如何编写语句才可以查询2012-01-24时可以查询到这一整天的记录?
    2020-12-21 16:28 
  • snrtuemc snrtuemc 回复 neyhig(提问者) 那你直接把数据库的格式话成2012-01-24这中yyyy-MM-dd格式,然后控件参数也设置这个格式就可以了
    2020-12-21 16:31 
  • neyhig neyhig(提问者) 回复 snrtuemc 不行数据库的不能改动。而这个日期条件没有设置为控件参数为空时查询全部,请问应该在这个语句基础上应该怎么改动呢?
    2020-12-21 16:35 
  • neyhig neyhig(提问者) 不行唉…查询不了,有错误
    2020-12-21 16:57 
  • 2关注人数
  • 520浏览人数
  • 最后回答于:2020-12-21 17:07
    请选择关闭问题的原因
    确定 取消
    返回顶部