AS400 DB2 SQL-0181 日期、时间或时间戳中的值无效

AS400 DB2 SQL-0181 Value in date,time or timestamp not valid

我正在使用使用 jt400 10.5 jar 查询 DB2 数据库的 Grails 应用程序。我们有一个 SQL 语句将儒略日期 YYYYDDD 转换为公历日期以显示在网站上。但是,我们最近有一个日期,似乎是任何大于 2040001 的日期都会给出此错误跟踪。

我正在执行的 SQL 是这个,其中 DELAPPT 是儒略日期。

 date(to_date(VARCHAR_FORMAT(DATE(TIMESTAMP_FORMAT(CHAR(DELAPPT),'YYYYDDD')),'MM/DD/YYYY'), 'MM/DD/YYYY')) 
 end as "delAppt"
Caused by: java.sql.SQLException: [SQL0181] Value in date, time, or timestamp string not valid.
        at 

此语句适用于 IBM ACS 运行 SQL 查询 DB2 的脚本应用程序,但通过 JT400 它似乎在日期达到 2040001 和更大时抛出此错误.我已经尝试了几种不同的方法在 date(digits(DELAPPT)) 之类的语句中执行此转换,但我仍然遇到同样的错误。有什么想法吗?

2040 是这里的红旗...

确保日期的 JDBC connection configured 格式为 ISO(或其他 4 位数年份)。

ACS 也使用 JT400,因为 ACS 可以工作,您已经在那里使用了 4 位数的年份格式。但如果您将其更改为 2 位数年份,您将能够重现该错误。