我在数据库中采用YYYY-MM-DD:hh:min:ss格式的日期变量,我想使用 cobol 程序在报告YYYY-MM-DD HH:MIN:SS中显示它。如何做到这一点?
问问题
8846 次
2 回答
4
看看内在函数,例如
- 功能组合-日期时间
- 功能当前日期
- 函数日期整数
- 功能日期到 YYYYMMDD
- 函数日期整数
- 函数区域日期
- 还有很多其他的,谷歌的 OpenCOBOL 常见问题,见第 4.2 节的例子
http://opencobol.add1tocobol.com/#does-opencobol-implement-any-intrinsic-functions
要获取当前时钟,请查看 ACCEPT FROM DATE YYYYMMDD, ACCEPT FROM TIME
然后您可能想要创建一个 PICTURE 数据子句,让您完全控制日期和时间的格式和显示方式。
当您想快速将冒号转换为空格或斜杠等时,我还发现 INSPECT REPLACING 是一件方便的事情。
identification division.
program-id. inspecting.
data division.
working-storage section.
01 ORIGINAL pic XXXX/XX/XXBXX/XX/XXXXXXX/XX.
01 DATEREC pic XXXX/XX/XXBXX/XX/XXXXXXX/XX.
procedure division.
move function when-compiled to DATEREC ORIGINAL
INSPECT DATEREC REPLACING ALL "/" BY ":" AFTER INITIAL SPACE
display
"Intrinsic function WHEN-COMPILED " ORIGINAL
end-display
display
" after INSPECT REPLACING " DATEREC
end-display
goback.
end program inspecting.
给予
Intrinsic function WHEN-COMPILED 2010/03/25 23/05/0900-04/00
after INSPECT REPLACING 2010/03/25 23:05:0900-04:00
于 2012-11-30T02:25:15.370 回答
0
我喜欢详细的 PICTURE 方法,就像 Brian Tiffin 所说的那样,然后您只需使用括号逐个移动数据。
类似: MOVE MY-DATE(1:4) to MY-YEAR
, 会将前 4 个字符移动到所需的字段。
于 2013-08-08T16:00:07.927 回答