日期参数问题

有两个日期参数,一个制单日期,一个是交货日期

希望可以选择制单日期的开始和结束,也可以选择交货日期的开始和结束。目前只能实现一个。

SELECT * FROM public."销售统计表" where 1=1 制单日期 between  '${startdate} 00:00:00' and '${enddate} 23:59:59' 

如果想同时加两个参数应该在上面如何加。谢谢!

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

分两个步骤:

(1)where条件那里的时间都改成可选的

where 1=1
${if(len(STARTDATE1)==0,"","and 制单日期>='"+STARTDATE1+"'")} -- STARTDATE1 制单日期 开始
${if(len(ENDDATE1)==0,"","and 制单日期<='"+ENDDATE1+"'")}     -- ENDDATE1 制单日期 结束

${if(len(STARTDATE2)==0,"","and 交货日期>='"+STARTDATE2+"'")} -- STARTDATE2 交货日期 开始
${if(len(ENDDATE2)==0,"","and 交货日期<='"+ENDDATE2+"'")}     -- ENDDATE2 交货日期 结束

说明:ENDDATE 那里你根据实际情况加上23:59:59,或者用DATE_ADD 之类的函数处理一下

(2)在查询按钮那里写一个js代码,控制用户至少选择一个时间

图片.png

最佳回答
0
wupeng990108Lv4见习互助
发布于2019-10-29 10:48

不用between,改为制单日期>   and  制单日期<  

最佳回答
0
free_zzLv6中级互助
发布于2019-10-29 10:53

SELECT * FROM public."销售统计表" where 制单日期 >=  '${startdate} 00:00:00' and   制单日期 <=   '${enddate} 23:59:59'   and   交货日期 >=  '${startdate} 00:00:00' and  交货日期 <=   '${enddate} 23:59:59'

最佳回答
0
wangfutaoLv5初级互助
发布于2019-10-29 10:53

再加两个参数,startdate1和enddate1(命名都可以,只要能识别),然后再在SQL中进行交货日期的判断

  • 一心向明月 一心向明月 恭喜你,你的回答已被采用
    2019-10-29 11:15 
最佳回答
0
凌建Lv7高级互助
发布于2019-10-29 10:59

where  (

1=1 ${if(len(starttime) == 0,"","and 制单日期>='"+starttime+"'")}

and

1=1 ${if(len(endtime) == 0,"","and 制单日期<='"+endtime+"'")}


)

and

(

1=1 ${if(len(starttime1) == 0,"","and 交货日期>='"+starttime1+"'")}

and

1=1 ${if(len(endtime1) == 0,"","and 交货日期<='"+endtime1+"'")}


)

直接拷贝,每个控件也可独立查询

最佳回答
0
黄源Lv6中级互助
发布于2019-10-29 11:01(编辑于 2019-10-29 11:02)

SELECT * FROM public."销售统计表" where 1=1 制单日期 between  '${startdate}'||' 00:00:00' and '${enddate}'||' 23:59:59' 

oracle 这样处理

其他库把||换成对应字符串连接符

如sqlserver好像是+

  • 7关注人数
  • 607浏览人数
  • 最后回答于:2019-10-29 11:12
    请选择关闭问题的原因
    确定 取消
    返回顶部