在RPG中,使用一个日期,以*job格式从文件中

问题描述 投票:0回答:1

我试图在一个RPG程序中转换一个文件中的日期(它来自DSPJRN命令,所以字段si 6数字,JOB格式).我想在我的程序中使用它作为日期,但我不能正确地实现它。

我试图描述一个类型为 "D "的字段:日期,关键字datfmt(*job)来转换文件中的值,但datfmt(*job)不正确(错误RNF0612)

我试着用RTVJOBA DATFMT(&FMT)从CLP程序中获取工作Date格式,并使用RPG中的变量来转换日期,就像这样。

eval ztJODATE = %date(JODATE:FMT)

但它不能编译:错误RNF0606。我想我不能在%date内置函数中使用格式变量。

这是做我想做的事情的一种方法吗,或者说在RPG程序中使用日期值之前,我被迫在SQL中转换日期值?

date ibm-midrange rpgle rpg
1个回答
3
投票

你可以指定*JOBRUN为%DATE。

eval      ztJODATE = %date(JODATE:*JOBRUN)

注意,RPG是在模块初始化时检索工作日期格式的,所以如果在程序运行时改变工作日期格式,RPG将无法理解日期。


2
投票

与其使用DSPJRN到一个输出文件,不如使用IBM i提供的一个程序接口来检索和处理日志条目。

你也可以使用*TYPE3或更高格式的输出文件。 没有单独的作业格式化数据&时间字段,而是有一个单一的char(26)系统时间戳字段。

说了这么多,还有一个 转换日期和时间格式(QWCCVTDT)API 接受 '*JOB' 作为一个输入格式指定器。

© www.soinside.com 2019 - 2024. All rights reserved.