【问题标题】:Jasper report - how to pass date parameter as "day", "month", "year" part from java to jasper report using SQLJasper 报告 - 如何使用 SQL 将日期参数作为“日”、“月”、“年”部分从 java 传递到 jasper 报告
【发布时间】: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


【解决方案1】:

使用以下格式:DD-MMM-YYYY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多