SAP-ABAP-AMDP 中的日期函数,关于日期的计算

SAP-ABAP-AMDP 中的日期函数,关于日期的计算

目录

AMDP中的日期函数

CURRENT_DATE 当前系统日期

CURRENT_TIME 当前系统时间 

HOUR()取小时

MINUTE()取分钟

SECOND ()取秒

DAYS_BETWEEN()两个日期的间隔天数

 ADD_DAYS (, )  当前日期加减天数

DAYNAME ()

在CDS视图中,AMDP这种写法,如果要使用SAP的系统变量,不像ABAP那样SY-[],AMDP 中有特定的写法

AMDP中的日期函数
CURRENT_DATE 当前系统日期
获取系统当前日期,返回date格式

DECLARE lv_data date;
lv_data := CURRENT_DATE ;
EXTRACT ({YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} FROM <d>)  获取年,月,日

小时,分钟,秒等

DECLARE ARRAY_TIME INTEGER ARRAY;
 
ARRAY_TIME[1] := EXTRACT ( YEAR from CURRENT_DATE ) 
ARRAY_TIME[2] := EXTRACT ( MONTH from CURRENT_DATE ) 
ARRAY_TIME[3] := EXTRACT ( DAY from CURRENT_DATE ) 
CURRENT_TIME 当前系统时间 
获取系统当前时间,返回time格式

DECLARE lv_time time;
lv_timeto := CURRENT_TIME ;
HOUR()取小时
获取时间里面的小时数,除了上面那种方法,这种函数可以直接用

DECLARE ARRAY_TIME INTEGER ARRAY;
ARRAY_TIME[1] := HOUR( CURRENT_TIME);
MINUTE()取分钟
获取时间里面的分钟数

DECLARE ARRAY_TIME INTEGER ARRAY;
ARRAY_TIME[2]:= MINUTE ( CURRENT_TIME );
SECOND ()取秒
 获取时间里面的秒数

DECLARE ARRAY_TIME INTEGER ARRAY;
ARRAY_TIME[3]:= SECOND ( CURRENT_TIME );
DAYS_BETWEEN()两个日期的间隔天数
两个日期的间隔天数,返回INT值

DECLARE BT_DAY INT ;
DECLARE lv_data1 DATE := '20220124';
DECLARE lv_data2 DATE := '20220130';
BT_DAY := DAYS_BETWEEN( :lv_data1 , :lv_data2);
 ADD_DAYS (<d>, <n>)  当前日期加减天数
 <d>:日期,<n>为正数时,当前日期后n天的日期,<n>为负数时,当前日期前n天的日期,类似的函数还有 ADD_MONTHS, ADD_MONTHS_LAST, ADD_YEARS, ADD_SECONDS, ADD_WORKDAYS

DECLARE lv_datum DATE ;
lv_datum := add_days (to_Date( CURRENT_DATE ),-7) ;
 
DECLARE lv_datum2 DATE ;
lv_datum2 := add_days (to_Date( CURRENT_DATE ),7) ;
DAYNAME (<d>)
这个返回的是当前日期是周几, 类似的方法还有DAYOFMONTH, DAYOFYEAR,DAYS_BETWEEN, WEEK, QUARTER, NEXT_DAY.


原文链接:https://blog.csdn.net/qq_40977705/article/details/123261568

posted @ 2022-04-05 17:04  ultraluck  阅读(777)  评论(0)    收藏  举报