有两个日期参数,一个制单日期,一个是交货日期
希望可以选择制单日期的开始和结束,也可以选择交货日期的开始和结束。目前只能实现一个。
SELECT * FROM public."销售统计表" where 1=1 制单日期 between '${startdate} 00:00:00' and '${enddate} 23:59:59'
如果想同时加两个参数应该在上面如何加。谢谢!
分两个步骤:
(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代码,控制用户至少选择一个时间
不用between,改为制单日期> and 制单日期<
SELECT * FROM public."销售统计表" where 制单日期 >= '${startdate} 00:00:00' and 制单日期 <= '${enddate} 23:59:59' and 交货日期 >= '${startdate} 00:00:00' and 交货日期 <= '${enddate} 23:59:59'
再加两个参数,startdate1和enddate1(命名都可以,只要能识别),然后再在SQL中进行交货日期的判断
where (
1=1 ${if(len(starttime) == 0,"","and 制单日期>='"+starttime+"'")}
and
1=1 ${if(len(endtime) == 0,"","and 制单日期<='"+endtime+"'")}
)
(
1=1 ${if(len(starttime1) == 0,"","and 交货日期>='"+starttime1+"'")}
1=1 ${if(len(endtime1) == 0,"","and 交货日期<='"+endtime1+"'")}
直接拷贝,每个控件也可独立查询
SELECT * FROM public."销售统计表" where 1=1 制单日期 between '${startdate}'||' 00:00:00' and '${enddate}'||' 23:59:59'
oracle 这样处理
其他库把||换成对应字符串连接符
如sqlserver好像是+