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