matinal:ABAP中常用的日期处理函数

ABAP 常用的日期函数 CALL FUNCTION 'MONTH_PLUS_DETERMINE' "若M = 1 加一个月;若M = -1 减一个月;若M = 0 不加也不减。WOTNR = WOTNR."1(星期一) 2(星期二) 3(星期三) 4(星期四) 5(星期五) 6(星期六) 7(星期七)signum = '+' "+号:表示 N天/月/年后的日期, -号:表示过去的日期。CONCATENATE SY-DATUM+0(6) '01' INTO STRDATE1 ."例子:20210301。 阅读详情

1.获取输入日期月份的最后一天:#

DATA: lv_date TYPE sy-datum.
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
  EXPORTING
    day_in            = '20140101'     "输入日期
  IMPORTING
    last_day_of_month = lv_date        "返回日期:20140131
  EXCEPTIONS
    day_in_no_date    = 1
    OTHERS            = 2.

2.获取两个日期之间的天、周、月、年数:#

TYPE-POOLS: p99sg.
DATA: lv_days   TYPE i,
      lv_weeks  TYPE i,
      lv_months TYPE i,
      lv_years  TYPE i.
DATA: month_tab TYPE STANDARD TABLE OF p99sg_month_tab_row.
CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'
  EXPORTING
    begda     = '20150101'    "开始日期
    endda     = '20160101'    "截止日期
  IMPORTING
    days      = lv_days          "返回天数:266
    c_weeks   = lv_weeks         "返回周数:52
    c_months  = lv_months        "返回月数:12
    c_years   = lv_years         "返回年数:1
    month_tab = month_tab.       "期间月份首尾日

3.获取输入日期的星期数:#

DATA lv_week TYPE p.
CALL FUNCTION 'DAY_IN_WEEK'
  EXPORTING
    datum         =  '20200101'   "输入日期"
 IMPORTING
   wotnr         =    lv_week.     "返回:3"

4.转换日期为内部数字格式:#

DATA: lv_date TYPE sy-datum.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
  EXPORTING
    date_external            = '2016.01.01'    "当前用户日期格式:YYYY.MM.DD
    accept_initial_date      = ' '
  IMPORTING
    date_internal            = lv_date         "输出:20160101"
  EXCEPTIONS
    date_external_is_invalid = 1
    OTHERS                   = 2.

5.转换日期为外部数字格式:#

DATA: lv_date TYPE sy-datum.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
  EXPORTING
    date_internal            = '20160101'  "当前日期格式"
  IMPORTING
    date_external            = lv_date     "输出:2016.01.01 "
  EXCEPTIONS
    date_internal_is_invalid = 1
    OTHERS                   = 2.

6.获取过去 N 月的日期:#

DATA date TYPE sy-datum.
CALL FUNCTION 'CCM_GO_BACK_MONTHS'
  EXPORTING
    currdate   = '20140101'    "输入日期"
    backmonths = 3             "过去3月"
  IMPORTING
    newdate    = date.         "20131001"

7.获取未来 N 月的日期:#

DATA date TYPE sy-datum.
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
  EXPORTING
    months  = 4             "未来4月"
    olddate = '20140101'    "输入日期"
  IMPORTING
    newdate = date.         "20140501"

8.F4 日期选择框:#

DATA sel_date TYPE sy-datum.
CALL FUNCTION 'F4_DATE'
 EXPORTING
   DATE_FOR_FIRST_MONTH          = SY-DATUM   "默认系统当前日期"
  IMPORTING
    select_date                  = sel_date   "用户选择日期"
  exceptions
    calendar_buffer_not_loadable = 1
    date_after_range             = 2
    date_before_range            = 3
    date_invalid                 = 4
    factory_calendar_not_found   = 5
    holiday_calendar_not_found   = 6
    parameter_conflict           = 7
    OTHERS                       = 8.

9.F4 时间选择框:#

DATA sel_time TYPE sy-uzeit.
CALL FUNCTION 'F4_CLOCK'
  EXPORTING
    start_time    = sy-uzeit    "默认系统当前时间"
  IMPORTING
    selected_time = sel_time.   "用户选择时间"

10.获取两个日期之间的详细信息:#

DATA: lv_month_start TYPE dats  ,                     "月初日期"
      lv_month_end   TYPE dats  ,                     "月末日期"
      lv_days        TYPE i     .                     "月总天数"

DATA day_attributes TYPE STANDARD TABLE OF casdayattr WITH HEADER LINE.
CALL FUNCTION 'DAY_ATTRIBUTES_GET'
  EXPORTING
    factory_calendar           = ' '                    "工厂日历ID
    holiday_calendar           = ' '                    "假期日历ID
    date_from                  = lv_month_start         "月开始日期
    date_to                    = lv_month_end           "月结束日期
    language                   = sy-langu
    non_iso                    = ' '
*     IMPORTING
*   YEAR_OF_VALID_FROM         = YEAR_OF_VALID_FROM
*   YEAR_OF_VALID_TO           = YEAR_OF_VALID_TO
*   RETURNCODE                 = RETURN_CODE
  TABLES
    day_attributes             = day_attributes         "返回日期每日属性
  EXCEPTIONS
    factory_calendar_not_found = 1
    holiday_calendar_not_found = 2
    date_has_invalid_format    = 3
    date_inconsistency         = 4
    OTHERS                     = 5.

*   获取当月总天数
lv_days = lines( day_attributes[] ).

11.日期转时间戳:#

DATA: lv_timestamp   LIKE  tzonref-tstamps.

   CALL FUNCTION 'CIF_GEN4_CONVERT_DATETIME'
     EXPORTING
       iv_date                = sy-datum
       iv_time                = sy-uzeit
*      IV_TIMEZONE            = SY-ZONLO
     IMPORTING
       ev_timestamp           = lv_timestamp
     EXCEPTIONS
       time_conversion_failed = 1
       OTHERS                 = 2.
	   
*或者使用下面语句:
CONVERT DATE sy-datum TIME sy-uzeit INTO TIME STAMP lv_timestamp TIME ZONE sy-zonlo.

12.时间戳转日期和时间:#

DATA: lv_timestamp   LIKE  tzonref-tstamps.

   CALL FUNCTION 'CIF_GEN4_CONVERT_DATETIME'
     EXPORTING
       iv_date                = sy-datum
       iv_time                = sy-uzeit
*      IV_TIMEZONE            = SY-ZONLO
     IMPORTING
       ev_timestamp           = lv_timestamp
     EXCEPTIONS
       time_conversion_failed = 1
       OTHERS                 = 2.
	   
*或者使用下面语句:
CONVERT DATE sy-datum TIME sy-uzeit INTO TIME STAMP lv_timestamp TIME ZONE sy-zonlo.

ABAP 时间相关函数、搜索帮助 阅读详情

相关推荐

SAP 日期时间处理总结

cast( tstmp_to_tims( tstmp_current_utctimestamp(), //取得时间戳。· DATS_TIMS_TO_TSTMP( date, time, tzone, clnt, on_error )将日期和时间拼成时间戳。· TSTMP_TO_TIMS( tstmp, tzone, clnt, on_error )将时间戳的时间部分转换为t类型。· TSTMP_TO_DATS( tstmp, tzone, clnt, on_error )将时间戳的日期部分转为d类型。

qq_36952606的博客 4871

ABAP日期时间函数

ABAP日期时间函数

BlueTeethBoy的博客 1414

matinal:ABAP 时间函数总结大全

EXPORTINGday_in = '20160104' "输入日期IMPORTINGlast_day_of_month = "返回最后一天日期:20160131EXCEPTIONSEXPORTINGday_in = '20160104' "输入日期IMPORTINGlast_day_of_month = "返回最后一天日期:20160131EXCEPTIONS。

matinal 當冬夜漸暖 。公众号:matinal 1631

ABAP如何获取当前月的第一天和最后一天

ABAP如何获取当前月的第一天和最后一天

weixin_40672823的博客 2445

matinal:长篇解析SAP ABAP 40年发展的历史、现状和未来

其根源甚至比 ABAP 的历史还要悠久。

matinal 當冬夜漸暖 。公众号:matinal 792

matinal:ABAP中时间戳的处理

UTC(UTC, Universal Time Coordinated,通用协调时)时间戳,分为长时间戳和段时间戳,其中长时间戳餐开始的系统的数据元素TIMESTAMPL,类型为DEC(21,7);【注意】在实际测试过程中,即使手动调整本地电脑的时间为费正确的时间,发现系统用户本地时间和服务器时间对应的系统变量的值是一样的(正确的时间值),并不是真正的本地时间,可能是因为时区相同,没有测出差别。获取当前系统的时间戳(这里的时间戳可以是长类型,也可以是短类型)time:指定的时间(TIMS类型)

matinal 當冬夜漸暖 。公众号:matinal 1204

matinal:SAP ABAP如何限制一个程序不能选择后台执行

在屏幕选择界面

matinal 當冬夜漸暖 。公众号:matinal 553

matinal:ABAP 解析TYPE(S) DATA

TYPES TAB_TYPE TYPE TABLE OF STRU_TYPE . " 根据结构声明一个表类型的类型(必须现有行类型,才能参照行声明表类型)DATA STRU_DATA_l LIKE LINE OF TAB_NAME . " 不明确类型的时候声明和表相同的对象。TYPES DATA_TYPE_NAME TYPE DATA_TYPE LENGTH LENGTH. " 声明一个类型。DATA STRU_DATA TYPE STRU_TYPE . " 参照类型声明一个变量。

matinal 當冬夜漸暖 。公众号:matinal 295

【ABAP系列】SAP ABAP常用函数总结第一篇

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:【ABAP系列】SAP ABAP常用函数总结第一篇 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。 正文部分 1:负号前置:CLOI_PUT_SIGN_IN_FRONT 2:加前导零:...

ARICK2014的博客 463

matinal:SAP ABAP CO02生产订单主数据动态刷新BAPI实战

本文详细解析了SAP ABAP中CO02生产订单主数据动态刷新的BAPI实战技巧。通过BAPI_PRODORD_CHANGE函数实现批量自动刷新,解决工艺路线变更或物料清单更新导致的生产问题。文章涵盖核心参数解析、完整代码实现、异常处理及性能优化建议,帮助提升SAP生产订单管理效率。

weixin_26833939的博客 184

matinal:SAP FICO财务模块总结篇

FICO

matinal 當冬夜漸暖 。公众号:matinal 1720

【ABAP系列】SAP ABAP ALV里日期类型的F4帮助

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:【ABAP系列】SAP ABAP ALV里日期类型的F4帮助 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。 正文部分 有人问,普通的ALV里F4帮助怎么加 其实很简单,加上field...

ARICK2014的博客 865

matinal:OB08维护汇率数据到TCURR的BAPI

【代码】matinal:OB08维护汇率数据到TCURR的BAPI。

matinal 當冬夜漸暖 。公众号:matinal 752

matinal:SAP ABAP 币别汇率查询

另

matinal 當冬夜漸暖 。公众号:matinal 1119

SAP HANA中文技术文档(跟matinal学HANA)

SAP HANA中文技术文档(跟matinal学HANA)

matinal 當冬夜漸暖 。公众号:matinal 7873

Docker部署 SRS rtmp/flv流媒体服务器

SRS(Simple Realtime Server)是一款开源的流媒体服务器,具有高性能、高可靠性、高灵活性的特点,能够支持直播、点播、转码等多种流媒体应用场景。SRS 不仅提供了流媒体服务器,还提供了适用于多种平台的客户端 SDK 和在线转码等辅助服务,是一款十分强大的流媒体解决方案。

m0_56659620的博客 4869

matinal:SAP ABAP 如何用BAPI实现MD11计划订单创建

【代码】matinal:SAP ABAP 如何用BAPI实现MD11计划订单创建。

matinal 當冬夜漸暖 。公众号:matinal 765

【嵌入式底层知识修炼】按键和LED共用IO口的分时复用扫描方法

文章目录01 - PCB原理图例程02 - 分时复用的注意项和设计2.1 - 注意项2.2 - 设计03 - 代码实现 只要我跑的速度够快,寂寞就追不上我 只要Key和Led切换速度够快,人眼就看不出来 ————小白   如果你存在按键Key和显示Led共用同一个IO时,需要分时复用的需求,则可以移植代码进行使用: 代码所占code少于0.5K 线程安全,中断安全 可移植性高,配置容易 注意:系统需要存在一个至少为1ms的时钟中断 01 - PCB原理图例程   举2个Key和Led共用IO口的

单眼皮根号三的博客 1万+

matinal:SAP ABAP 弹出输入框函数

【代码】matinal:SAP ABAP 弹出输入框函数。

matinal 當冬夜漸暖 。公众号:matinal 343

ADS1299寄存器配置与应用实战指南

本文提供了ADS1299高精度生物电信号采集芯片的寄存器配置与应用实战指南。详细解析了采样率、增益、转换模式等核心寄存器的设置方法,并分享了数据读取、高级功能配置及常见问题的调试心得,帮助开发者快速掌握ADS1299的配置技巧,实现稳定的ECG/EEG信号采集。

weixin_28278377的博客 194

【RT-DETR改进涨点】ResNet18、34、50、101等多个版本移植到ultralytics仓库(RT-DETR官方一比一移植)

本文是本专栏的第一篇改进,我将RT-DETR官方版本中的ResNet18、ResNet34、ResNet50、ResNet101移植到ultralytics仓库,网上很多改进机制是将基础版本的也就是2015年发布的ResNet移植到ultralytics仓库中,但是其实RT-DETR实验的ResNet和其是有很大区别的在其中有很多细节上的不同(文章中我也会列出举例)

Snu77的博客 7222

matinal:SAP ABAP SM30输入某个字段自动带出另一个字段的数据

【代码】matinal:SAP ABAP SM30输入某个字段自动带出另一个字段的数据。

matinal 當冬夜漸暖 。公众号:matinal 488

组合预测 | Python实现LSTM-XGBoost长短期记忆网络组合极限梯度提升树股票价格预测

组合预测 | Python实现LSTM-XGBoost长短期记忆网络和极限梯度提升树股票价格预测

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 2353
上一篇: matinal:ABAP 工作中心批量创建BAPI
下一篇: matinal:ABAP 代码实现PDF 打印
SAPmatinal
博客等级 码龄12年 3万+粉丝 2291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值