一个开始日期,一个结束日期,过滤的字段是字符串,如何设置时间区间为空返回全部,下面设置报错查不出数据:
${if(len(开始日期)=0,"","and plan_ed>=to_char('"+开始日期+"','yyyy-MM-dd')")}
${if(len(结束日期)=0,"","and plan_ed<=to_char('"+结束日期+"','yyyy-MM-dd')")}
plan_ed字段如果是字符串类型的。直接这样是没有问题的
where 1=1
${if(len(开始日期)=0,"","and plan_ed>='"+开始日期+"'")}
${if(len(结束日期)=0,"","and plan_ed<='"+结束日期+"'")}
plan_ed字段如果是日期格式的话。那么你在oracel里面就要用这样的写法
${if(len(开始日期)=0,"","and plan_ed>=to_date('"+开始日期+"','yyyy-mm-dd')")}
${if(len(结束日期)=0,"","and plan_ed<to_date('"+结束日期+"','yyyy-mm-dd')+1")}
你要是转为字符串的话
控件默认返回类型就是字符串啊
你把to_char 转化那删掉试试
${if(and(len(开始日期)=0,len(结束日期)=0),"","and plan_ed>=to_char('"+开始日期+"','yyyy-MM-dd') and plan_ed<=to_char('"+结束日期+"','yyyy-MM-dd')")}