我有两个约会。
第一是

<field name="duedate" class="java.util.Date"/>

&第二个是当前日期
所以我正在做这样的事情
<![CDATA[ $F{duedate} >= (new java.util.Date()) ? "one" : "two"]]>

如果dueDate与新的java.util.Date()匹配,则不起作用

日期格式似乎也有问题。我正在使用PostgreSQL查询来获取日期。
说查询是这样的
    <queryString>select dueDate from table1</queryString>

然后我得到这样的领域
<field name="duedate" class="java.util.Date"/>

但是PostgreSQL dueDate o / p的类型为java.sql.date

所以我声明的字段可以用作util.date吗?

最佳答案

java.util.Date有自己的比较方法(compareTo(),after(),before()),它们也可以在Jasper中使用。因此,您可以尝试执行以下操作:

$F{duedate}.compareTo(new java.util.Date() == 0 ? "one" : "two"

我现在可能想到的另一种可能的解决方案是在报表的查询中进行比较,如下所示:
SELECT
duedate as duedate,
CASE WHEN duedate == sysdate THEN "one"
ELSE "two" END as comparison
FROM ....

10-08 13:35