4gl 中的十进制数值日期时间格式

decimal number valued datetime formatting in 4gl

该字段的值是 (deci-5 99999999.99999) 格式,如: 20201231.65624 其中 2020 是年,12 是月,31 是日期,.65624 是小时和分钟值。

我想像这样显示它 31/12/2020 18:13.

我的意思是DD/MM/YYhh:mm喜欢这种格式。到目前为止,我只能显示日期部分,即 31/12/2020。但是无法显示小时和分钟部分。

感谢您在这方面的帮助。谢谢。

如果值为字符串,这将在 hh:mm:ss 中显示时间部分:

display string( integer ( entry( 2, "20201231.65624", "." )), "hh:mm:ss" ).

或者,如果值为小数:

define variable d as decimal no-undo initial 20201231.65624.

display string( integer(( d - truncate( d, 0 )) * 100000 ), "hh:mm:ss" ).

显然,您可能希望对该方法进行抽象,以满足您的实际需求。

使用字符或小数字段保存日期时间的技术是不支持 DATETIME 或 DATETIME-TZ 数据类型的 Progress 古代版本的遗留物。从 OpenEdge 10 开始,您有一个本机数据类型,您应该将其用于该目的。这种使用小数和字符串的方法实际上应该只用于向后兼容旧代码和旧数据库模式。