我有一个OData服务返回一些DateTime值。它们TIMESTAMPL与其他数据一起保存在后端的表中。
现在有价值20160630084459.5000。随着MOVE-CORRESPONDING进入et_entityset,在哪里TIMESTAMP。由于四舍五入,它得到20160630084460,因为秒必须在00和之间59,所以这不是要返回的有效值。
我的主要问题是,我的表中有很多条目,因此我需要一种高性能的方法来修复此错误。
这是一种将其转换为您想要的内容的方法。
REPORT zzy NO STANDARD PAGE HEADING.
FORM convert_timestamp.
DATA(l_t1) = CONV timestampl('20160630084459.5000').
DATA: l_t2 TYPE timestamp.
l_t2 = l_t1.
WRITE / : l_t1, l_t2.
CONVERT TIME STAMP l_t1 TIME ZONE sy-zonlo INTO DATE DATA(l_date) TIME DATA(l_time).
CONVERT DATE l_date TIME l_time INTO TIME STAMP l_t2 TIME ZONE sy-zonlo.
WRITE / l_t2.
ENDFORM.
START-OF-SELECTION.
PERFORM convert_timestamp.
Run Code Online (Sandbox Code Playgroud)
这是输出。
20.160.630.084.459,5000000
20.160.630.084.460
20.160.630.084.459