SAP 日期函数

1.计算两个时间的时间差:cl_abap_tstmp=>subtract

DATA: tstmp1 TYPE timestampl,
      tstmp2 TYPE timestampl,
      diff   TYPE tzntstmpl. " P代表秒

" 获取两个时间戳
tstmp1 = '20230911183000'.
tstmp2 = '20230911153000'.

diff = cl_abap_tstmp=>subtract(
    EXPORTING
       tstmp1 = tstmp1
       tstmp2 = tstmp2 ).

IF diff > 86000.
  WRITE: '大于24 小时'.
ELSE.
  WRITE: '小于24 小时'.
ENDIF.
WRITE: / diff.

其中 diff  是带符号的,如果 tstmp1 > tstmp2 , 则diff  是正数,反之负数

2.倒推过去的日期时间 :START_TIME_DETERMINE 

PARAMETERS: p_inter  TYPE sytabix OBLIGATORY.
CONSTANTS gc_msehi   TYPE t006-msehi    VALUE 'MIN'.

 "Date fidle
  DATA lv_start_date TYPE sy-datum.
  DATA lv_start_time TYPE sy-uzeit.

  DATA(lv_end_date) = p_datum.
  DATA(lv_end_time) = p_uzeit.


  " Get the start date and start time
  CALL FUNCTION 'START_TIME_DETERMINE'
    EXPORTING
      duration                   = p_inter
      unit                       = gc_msehi
    IMPORTING
      start_date                 = lv_start_date
      start_time                 = lv_start_time
    CHANGING
      end_date                   = lv_end_date
      end_time                   = lv_end_time
    EXCEPTIONS
      factory_calendar_not_found = 1
      date_out_of_calendar_range = 2
      date_not_valid             = 3
      unit_conversion_error      = 4
      si_unit_missing            = 5
      parameters_not_valid       = 6
      OTHERS                     = 7.
  IF sy-subrc <> 0.
* Implement suitable error handling here
    MESSAGE s022 DISPLAY LIKE gc_e.
    RETURN .
  ENDIF.

其中 p_inter 是整数的意思,unit 参数表示时间格式”时,分,秒“

如下图:

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP_Damon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值