在 RPG 中,使用文件中的 *job 格式的日期
In RPG, use a date, in *job format from a file
我正在尝试在 RPG 程序中转换文件中的日期(它来自 DSPJRN 命令,因此字段 si 6 数字,采用 JOB 格式)。
我想在我的程序中将其用作日期,但无法正确实现。
我试图描述类型为 "D" 的字段:日期,关键字 datfmt(*job) 以从文件中转换值,但 datfmt(*job) 不正确(错误 RNF0612)
我尝试使用 RTVJOBA DATFMT(&FMT) 从 CLP 程序中检索作业日期格式,并使用 RPG 中的变量像这样转换日期
eval ztJODATE = %date(JODATE:FMT)
但无法编译:错误 RNF0606。我认为我不能在 %date 内置函数中使用格式变量。
这是做我想做的事情的方法吗,还是我必须在 SQL 中转换日期值才能在 RPG 中使用它的值?
PS: 我不想在我的 RPG 程序中硬编码格式!
检索和处理日志条目的推荐方法是使用 IBM i 提供的编程接口之一,而不是将 DSPJRN 用于输出文件。
您还可以为输出文件使用 *TYPE3 或更高格式。不是单独的作业格式数据和时间字段,而是一个 char(26) 系统时间戳字段。
话虽如此,有一个 Convert Date and Time Format (QWCCVTDT) API 接受 '*JOB'
作为输入格式说明符..
您可以为 %DATE 指定 *JOBRUN。
eval ztJODATE = %date(JODATE:*JOBRUN)
请注意,RPG 在模块初始化期间检索作业日期格式,因此如果您在程序 运行 期间更改作业日期格式,RPG 将无法理解日期。
我正在尝试在 RPG 程序中转换文件中的日期(它来自 DSPJRN 命令,因此字段 si 6 数字,采用 JOB 格式)。 我想在我的程序中将其用作日期,但无法正确实现。
我试图描述类型为 "D" 的字段:日期,关键字 datfmt(*job) 以从文件中转换值,但 datfmt(*job) 不正确(错误 RNF0612)
我尝试使用 RTVJOBA DATFMT(&FMT) 从 CLP 程序中检索作业日期格式,并使用 RPG 中的变量像这样转换日期
eval ztJODATE = %date(JODATE:FMT)
但无法编译:错误 RNF0606。我认为我不能在 %date 内置函数中使用格式变量。
这是做我想做的事情的方法吗,还是我必须在 SQL 中转换日期值才能在 RPG 中使用它的值? PS: 我不想在我的 RPG 程序中硬编码格式!
检索和处理日志条目的推荐方法是使用 IBM i 提供的编程接口之一,而不是将 DSPJRN 用于输出文件。
您还可以为输出文件使用 *TYPE3 或更高格式。不是单独的作业格式数据和时间字段,而是一个 char(26) 系统时间戳字段。
话虽如此,有一个 Convert Date and Time Format (QWCCVTDT) API 接受 '*JOB'
作为输入格式说明符..
您可以为 %DATE 指定 *JOBRUN。
eval ztJODATE = %date(JODATE:*JOBRUN)
请注意,RPG 在模块初始化期间检索作业日期格式,因此如果您在程序 运行 期间更改作业日期格式,RPG 将无法理解日期。