You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在ABAP中使用BETWEEN比较TIMS类型时间变量是否存在弊端?

关于Z报表执行时间校验逻辑的疑问

我近期要给Z报表添加执行时间校验逻辑:若执行时间不在两个选择参数指定的时间范围内,则终止执行。目前的实现代码如下:

report ztest.
selection-screen begin of block b01 with frame.
  parameters:
    zeit_v type tims obligatory,
    zeit_b type tims obligatory.
selection-screen end of block b01.

data(local_time) = sy-timlo.
if not local_time between zeit_v and zeit_b.
  return.
endif.

" run program
" ...

和同事讨论后,我不确定这个实现是否正确。之前我会用手动判断语句if local_time >= zeit_v and local_time < zeit_b来实现——手动判断的优势是能通过调整比较运算符灵活处理边界场景,把逻辑控制权留在代码里;而用BETWEEN的话,边界逻辑的维护责任就转移给了选择参数的维护者。

除此之外,有没有其他未考虑到的问题?比如类型比较问题:我了解到TIMS类型基于TIME,而TIME是CHAR6的派生类型。当前环境时区为CET,时间采用24小时制(00:00:00 - 23:59:59)。

内容的提问来源于stack exchange,提问作者Radinator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 14:52:01