如何将 1 天添加到给定的参数日期?出现“java.util.Date 无法转换为 java.sql.Date”错误
How to add 1 day to the given parameter date? Got `java.util.Date cannot be cast to java.sql.Date` error
我正在尝试将给定参数日期增加 1 天。
在Jaspersoft Studio中我有以下参数
$P{datestart}
Class: java.sql.Date
Default value expression: new Date()
$V{datev}
Class: java.sql.Date
Expression: new java.sql.Date($P{datestart}.getTime() + 24*60*60*1000)
然后我在报告中使用$V{datev}
。
输出错误:
Error evaluating expression for source text:
new java.sql.Date($P{datestart}.getTime() + 24*60*60*1000)
java.util.Date cannot be cast to java.sql.Date
我尝试了不同的表达方式,但没有成功
Change $v{datev} to new java.util.Date($P{datestart}.getTime() + 24*60*60*1000).
Change $P{datestart} to: new SimpleDateFormat("dd-MM-yyyy").format(new Date())
有人看到我做错了什么吗?
看来$P{datestart}
参数的定义有误。
如果 datestart 参数有 java.util.Date 或 ,则表达式 new java.sql.Date($P{datestart}.getTime() + 24*60*60*1000)
有效java.sql.Date类型。
您可能知道,java.sql.Date class is a subclass of java.util.Date
此 Java 代码运行良好:
java.util.Date date = new java.util.Date();
new java.sql.Date(date.getTime() + 24*60*60*1000);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
new java.sql.Date(sqlDate.getTime() + 24*60*60*1000);
尝试更改 datestart 的类型,甚至更改两者(参数和变量)的类型。
至少你需要修复 datestart 参数的初始化。
没有java.sql.Date()
(不带参数)构造函数。看起来您正在使用具有类似 Java 代码的表达式:
java.sql.Date sqlDate = new java.util.Date(); // not even compile. Got incompatible types: java.util.Date cannot be converted to java.sql.Date
此声明对 java.sql.Date
的 $P{datestart}
有效:
<parameter name="datestart" class="java.sql.Date">
<defaultValueExpression><![CDATA[new java.sql.Date(new java.util.Date().getTime())]]></defaultValueExpression>
</parameter>
我正在尝试将给定参数日期增加 1 天。
在Jaspersoft Studio中我有以下参数
$P{datestart}
Class: java.sql.Date
Default value expression: new Date()
$V{datev}
Class: java.sql.Date
Expression: new java.sql.Date($P{datestart}.getTime() + 24*60*60*1000)
然后我在报告中使用$V{datev}
。
输出错误:
Error evaluating expression for source text:
new java.sql.Date($P{datestart}.getTime() + 24*60*60*1000)
java.util.Date cannot be cast to java.sql.Date
我尝试了不同的表达方式,但没有成功
Change $v{datev} to new java.util.Date($P{datestart}.getTime() + 24*60*60*1000).
Change $P{datestart} to: new SimpleDateFormat("dd-MM-yyyy").format(new Date())
有人看到我做错了什么吗?
看来$P{datestart}
参数的定义有误。
如果 datestart 参数有 java.util.Date 或 ,则表达式 new java.sql.Date($P{datestart}.getTime() + 24*60*60*1000)
有效java.sql.Date类型。
您可能知道,java.sql.Date class is a subclass of java.util.Date
此 Java 代码运行良好:
java.util.Date date = new java.util.Date();
new java.sql.Date(date.getTime() + 24*60*60*1000);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
new java.sql.Date(sqlDate.getTime() + 24*60*60*1000);
尝试更改 datestart 的类型,甚至更改两者(参数和变量)的类型。
至少你需要修复 datestart 参数的初始化。
没有java.sql.Date()
(不带参数)构造函数。看起来您正在使用具有类似 Java 代码的表达式:
java.sql.Date sqlDate = new java.util.Date(); // not even compile. Got incompatible types: java.util.Date cannot be converted to java.sql.Date
此声明对 java.sql.Date
的 $P{datestart}
有效:
<parameter name="datestart" class="java.sql.Date">
<defaultValueExpression><![CDATA[new java.sql.Date(new java.util.Date().getTime())]]></defaultValueExpression>
</parameter>