假设我有一个8字节的记录保持时间字段的12个位置。我可以将它与当前时间戳进行比较吗?我可以对该字段进行算术运算,例如添加一小时或减去几分钟等。您的回复将受到高度赞赏。谢谢!
附录..为了更好地理解:
在从输出中写入记录时,我需要你的帮助来比较时间字段。 例如,我有文件hloding时间戳为8字节的第12个位置。当记录上的时间戳小于或等于当前时间戳一小时时,我想写入输出。在达到这个目标的过程中,我被困在了下面:
INCLUDE COND=(12,8,??,GE,&TIME1-1),
可能是什么数据表示(代替??
。)
在此之前我们可以使用SORT实现这一目标吗?如果是这样,请给我一张SORT卡(如果可行,请修改我的卡,否则请给你的版本)。此外,请分享材料/回购时间和日期比较和更好的处理。在此先感谢您的帮助。
此致 拉加。
答案 0 :(得分:1)
我认为看看你想做什么,但怀疑它是否会起作用。这些是我的想法:
可能有用的东西:添加一个预步骤来运行REXX或其他一些prgram。让这个节目 生成全部或部分 后续ICETOOL步骤中使用的 INCLUDE 语句。这是一个示例REXX过程 将创建一个类似于您的问题中给出的 INCLUDE 语句。记录是 写入分配给DD CNTLREC的文件:
/* REXX */
PULL DELTA /* Number of hours to add to current time */
PARSE VALUE TIME('N') WITH HH ':' MM ':' SS /* current time */
HH = LEFT((HH + DELTA) // 24, 2, '0') /* add DELTA, check rollover */
QUEUE " INCLUDE COND=(12,8,CH,GE,C'"HH":"MM":"SS"'),"
EXECIO * DISKR CNTLREC(FINIS
EXIT
将此文件分配给相应的ICETOOL控制语句DD,它应该适合您。
警告:此示例不处理可能的调整 在午夜翻滚的情况下需要COND参数。
注意:如果您将上述REXX程序存储在PDS中:“MY.REXX(FOO)”,您的预备步骤 JCL看起来像:
//RUNREXX EXEC PGM=IKJEFT01
//SYSEXEC DD DSN=MY.REXX,DISP=SHR
//SYSTSPRT DD SYSOUT=A
//SYSTSIN DD *
%FOO
1
/*
//
%FOO之后的'1'是程序中引用的DELTA小时数。
答案 1 :(得分:0)
如果您的DFSORT是最新的,2010年10月,DATE5将具有相当于DATE4但包括微秒,所以就像DB2“时间戳”。
OPTION COPY
INREC OVERLAY=(1:DATE5)
给出
2013-04-08-19.29.41.261377