用于 DB2 日期算法的 COBOL 变量的定义
Definition of COBOL variable to use for DB2 date arithmetic
在某些情况下,我想从时间戳中添加或减去可变天数。
最简单的例子是这样的:
SELECT CURRENT_TIMESTAMP - :MOD-DAY DAY
INTO :MYTIMESTAMP
FROM SYSIBM.SYSDUMMY1
我的问题是找出 MOD-DAY
的正确 Cobol 定义。
据我所知,我们是 运行 DB2 版本 11。
根据https://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/sqlref/src/tpc/db2z_datearithmetic.html
变量的 DB2 定义必须是 DECIMAL(8,0)
可能是 9(08)
或 S9(08)
但在这两种情况下,以及我到目前为止想到的任何其他变体,我都会收到编译错误
DSNH312I E DSNHSMUD LINE 1181 COL 49 UNDEFINED OR UNUSABLE HOST VARIABLE "MOD-DAY"
我当然确定了MOD-DAY
已经定义好了,所以关键词一定是UNUSABLE
DSNH312I
的错误代码定义非常通用:
https://www.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/msgs/src/tpc/dsnh312i.html
那么有人知道在这种情况下要使用的正确 COBOL 变量定义吗?
Decimal
在 Mainframe-DB2 中表示 comp-3.
所以字段应该定义为S9(08) comp-3
如果您查看 DB2 为 DB2 表/视图生成的 Cobol Copybooks,您将看到 DB2 定义和生成的 Cobol 字段。这可能是解决此类查询的另一种方法
在某些情况下,我想从时间戳中添加或减去可变天数。
最简单的例子是这样的:
SELECT CURRENT_TIMESTAMP - :MOD-DAY DAY
INTO :MYTIMESTAMP
FROM SYSIBM.SYSDUMMY1
我的问题是找出 MOD-DAY
的正确 Cobol 定义。
据我所知,我们是 运行 DB2 版本 11。
根据https://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/sqlref/src/tpc/db2z_datearithmetic.html
变量的 DB2 定义必须是 DECIMAL(8,0)
可能是 9(08)
或 S9(08)
但在这两种情况下,以及我到目前为止想到的任何其他变体,我都会收到编译错误
DSNH312I E DSNHSMUD LINE 1181 COL 49 UNDEFINED OR UNUSABLE HOST VARIABLE "MOD-DAY"
我当然确定了MOD-DAY
已经定义好了,所以关键词一定是UNUSABLE
DSNH312I
的错误代码定义非常通用:
https://www.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/msgs/src/tpc/dsnh312i.html
那么有人知道在这种情况下要使用的正确 COBOL 变量定义吗?
Decimal
在 Mainframe-DB2 中表示 comp-3.
所以字段应该定义为S9(08) comp-3
如果您查看 DB2 为 DB2 表/视图生成的 Cobol Copybooks,您将看到 DB2 定义和生成的 Cobol 字段。这可能是解决此类查询的另一种方法