假设我想要一个JasperReport,如果用户愿意,它可以让用户过滤日期。在SQL如下:。有条件的JasperReports Where子句
select * from foo where bar = $P{bar} and some_date > $P{some.date}
现在,我不想被一些日期进行过滤,如果他们没有通过的日期在我发现下面的杂牌人们使用:
select * from foo where bar = $P{bar} $P!{some.date.fragment}
而且some.date.fragment
参数定义与下面的默认:
($P{some.date} == null || $P{some.date}.equals("")) ? "" : "AND some_date >'" + new java.sql.Date($P{some.date}.getTime()).toString() + "'"
这不是为toString
工作不输出的日期,我SQL服务器可以理解的格式。我希望条件仍然使用jdbc驱动程序的准备语句并抛出参数,我只是希望准备好的语句依赖于参数是否为null。这可以做到吗?
在我的情况下,第二个参数是一个字符串,where子句我用$ P {} stringValue的的一部分。 –