【发布时间】:2023-03-31 03:52:02
【问题描述】:
我想使用 SQL 将“月”、“年”参数从 java 传递到 jasper 报告。我已经硬编码了日值。我只想将日、月和年参数作为日期字符串加入,但出现错误
java.sql.SQLDataException: ORA-01843: 无效月份
下面是我的代码:
WHERE TO_DATE(START_DATE,'DD-MM-YYYY HH:MI:SS')>= ADD_MONTHS( TO_DATE('26-' || UPPER($P{MONTH}) || '-' || $P{YEAR} ,'DD-MM-YYYY') ,-1)
AND
TO_DATE(END_DATE,'DD-MM-YYYY HH:MI:SS') <= ADD_MONTHS( TO_DATE('26-' || UPPER($P{MONTH})|| '-' || $P{YEAR} ,'DD-MM-YYYY') ,0)
【问题讨论】:
-
DATE_ADD ( NOW ( ) , INTERVAL 1 MONTH )?试试这个 -
我想知道这个参数拼接是否正确。 “TO_DATE('26-' || UPPER($P{MONTH}) || '-' || $P{YEAR} ,'DD-MM-YYYY')”
-
你也应该标记
oracle。串联看起来不错,虽然UPPER没用。您是否传递了一个两位数的月份(前导零)字符串? -
我正在像这个“六月”一样度过一个月。三个字母的月份词
-
我建议您复制您的 SQL 并将其粘贴到文本字段中,以便您可以检查 SQL 并验证日期格式。
标签: sql oracle jasper-reports