This will display the time portion in hh:mm:ss if the value is a string:
display string( integer ( entry( 2, "20201231.65624", "." )), "hh:mm:ss" ).
or, if the value is a decimal:
define variable d as decimal no-undo initial 20201231.65624.
display string( integer(( d - truncate( d, 0 )) * 100000 ), "hh:mm:ss" ).
Obviously you would want to abstract that approach to fit whatever your real need is.
The technique of using a character or decimal field to hold a datetime is a legacy of ancient versions of Progress that did not support a DATETIME or DATETIME-TZ datatype. Since OpenEdge 10 you have a native datatype that you should be using for that purpose. This kind of approach with decimals and strings should really only be used for backwards compatibility to old code and old database schemas.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…