我编写了一个查询以将字符显示为十进制值,但出现错误。我分享一下:
DEFINE VARIABLE cDateTime AS CHARACTER NO-UNDO.
DEFINE TEMP-TABLE tt_data NO-UNDO
FIELD DateTime AS DECIMAL FORMAT "->>,>>9.99".
ASSIGN
cDateTime = "20191604121566".
CREATE tt_data.
ASSIGN
tt_data.DateTime = DECIMAL(cDateTime) /* Message Date and Time */
但是它说:
“无法使用->>>,>>>,>> 9.999999显示值”。
您能帮忙解决这个问题,并告诉我这里有什么问题吗?
答案 0 :(得分:4)
您显示的代码不会导致您正在报告的错误。
我猜测您的真实代码中某处有一个DISPLAY语句。
所报告的错误仅表示DISPLAY格式对于数据而言不够宽。默认情况下,DISPLAY将使用您在数据元素的定义中指定的任何格式。如果您未指定任何内容,则每个数据类型都具有默认值。对于小数,默认值为“->>,>>>。99”。
您可以在定义中增加格式,也可以在显示语句中覆盖它,如下所示:
display tt_data.DateTime format ">>>>>>>>>>>>>>>9".
注意:显示格式对您可以存储在字段中的值没有影响。您总是可以将超出显示范围的更多数据“超载”到变量中。该格式仅用于输出显示目的-与存储无关。
答案 1 :(得分:3)
分配工作正常,但是显示却不正常。
所以...
DISPLAY tt_data.DateTime.
...不起作用,因为它使用格式“->>,>> 9.99”。
您可以在定义中更改格式,例如“ 99999999999999”,或执行以下操作:
DISPLAY tt_data.DateTime FORMAT "99999999999999".