你们中有谁有建议如何将Unix时间戳转换成ABAP MEZ/MESZ时间和日期吗?
以下代码来自ABAP-Reference,该代码用于长度为15或21的时间戳,但Unix时间戳当前为10位数。
DATA: time_stamp TYPE timestamp,
tz TYPE ttzz-tzone.
tz = 'MESZ'.
time_stamp = 15319830890000.
CONVERT TIME STAMP time_stamp TIME ZONE tz
INTO DATE DATA(dat) TIME DATA
有没有人建议如何将给定的UTC时间戳转换为系统时区的日期和时间?
从UTC时间戳转换到用户本地时区很容易,您可以这样做:
CONVERT TIME STAMP lv_utc_timestamp TIME ZONE sy-zonlo
INTO DATE lv_local_date TIME lv_local_time.
但是,在许多情况下,例如调用JOB_CLOSE函数模块时,如何实现系统时间-系统时间是需要的。到目前为止,我想出的唯一解决办法是:
SELECT SINGLE * FROM TTZCU INTO ls_ttzcu.
CONVERT TIME STAMP lv_
在ABAP编程语言中,如何将1天添加到TIMESTAMP类型的时间,并正确地将月/年滚动? 例如: data lv_time type TIMESTAMP value '20180228000000'.
data(lv_new_time) = lv_time + 1. " should be '20180301000000', but instead is '20180228000001'
data(lv_new_time2) = lv_time + 1000000. " should be '2018030100000
我们正在编写一个sapjco客户端来自动化某些事情。但是,有一个函数在初始化函数时似乎有问题。其他功能块可以正确连接,但此功能块在尝试连接时崩溃。
该函数没有导入。但是我们也尝试了import,也得到了同样的结果。所以添加一个看起来并不是很有效
FUNCTION ZE237_GET_REZEPTID.
TYPES: BEGIN OF ZE237SOLLDATEN_TYP,
id TYPE ZE237SOLLDATEN-ID,
name TYPE ZE237SOLLDATEN-NAME,
END OF ZE237SOLLDATEN_TYP.
DATA lt_table TYPE
我尝试编译ABAP提供的声明变量、类型和类似内容的所有方法,包括过时的语法变体和acrane语法变体。因此,例如,我会在列表中包括字段组,但不包括类的声明。我目前的列表如下。我错过什么了吗?
语句声明变量
- DATA-like declarative statements数据(不包括公共部分的数据开头)、静态、参数、参数、常量
- FIELD-SYMBOLS -内联声明
-程序的实际参数
表单(子例程)、函数、方法
-其他变量声明语句
范围,SELECT-OPTIONS:还有更多?
语句声明类型
- TYPES
other statements
- DATA BEGIN OF COM
我正在尝试使用RTTS类构建一个动态类型。我构建了一个包含列名'COL_1'、'COL_2'等的组件表……在第73行的标准方法CL_ABAP_STRUCTDESCR=>CREATE( )中,类型创建失败:
if comp-name+off(1) cn 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_' or
comp-name+off(*) cn 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789'.
* illegal character i
我的递归方法中有一个传入的深结构,它包含结构和表,所以我使用RTTI检查类型、循环并执行操作,以防我找到了特定的组件。
如果当前组件是一个结构或表,那么方法会调用它自己。
问题:我导入结构时输入了any类型。到目前一切尚好。我也想把它作为A型出口。
我在这里挣扎。
如何将已编辑的深结构分配给导出参数?
METHOD process_input.
DATA: lo_type_descr TYPE REF TO cl_abap_typedescr,
lo_struct_descr TYPE REF TO cl_abap_structdescr,
lv_comp_fo
我知道java Date的设计很糟糕,但直到今天我才知道如何设计。
我保存了一个日期给DB,当我从DB获得它,并与原始日期相比,它告诉我,这是不同的!
我写了一个看起来很奇怪的测试,但它通过了!
@Test
public void date_equals() {
Date now = new Date();
Timestamp timestamp = new Timestamp(now.getTime());
assertFalse(timestamp.equals(now));
assertTrue(now.equals(timestamp));
我需要在字段符号<itab>中获取字段名,这样我就可以使用ALV的字段目录的名称。
所以我使用了cl_abap_structdescr,但是它总是给我带来一个错误。我尝试了一个内部表,并得到了预期的结果,但我必须使用字段符号,而不是内部表。
ASSIGN lo_itab->* TO <itab>
data: go_struct type ref to cl_abap_structdescr,
gt_comp type abap_component_tab,
gs_comp type abap_componentdescr.
我在一个AMDP类中有一个sqlscript。我得到了以下语句的转储:
sel1 = select mandt, equnr,
ROW_NUMBER() OVER ( PARTITION BY equnr ORDER BY equnr, idate, itime, mdocm) as rnum,
to_date(idate) as idate,
cast(to_varchar(idate) || to_varchar(itime) as "$ABAP.type( TSTMP_BW_EXTRACT )" ) AS mytimestmp,
LEAD(
我对ABAP比较陌生,所以我仍然需要习惯于内部表之类的东西,所以目前我还有点纠结于如何在ABAP中使用SQL来填充嵌套结构。
例如:
TYPES: BEGIN of <<mystructure>>,
someID type sometype,
relatedItemsInDataModel type table of sometabletype,
END of <<mystructure>>.
DATA wa type <<mystructure>>.
<<S
我在一个名为product的表中有一个日期字段。我需要在这个字段中添加一些如何处理此问题的天数。我是PostgreSQL的新手。 我试过这个: select manufacture_dt + weeks*7 from product; 它给了我一个错误 operator does not exist: timestamp without time zone + integer.
Hint no operator matches the given name and argument types .you might need to add explicit type cast
我正在尝试将日期格式从2020.11.20改为11/2020
我的目标是取消这一天,只留一个月/一年。如果我将EDATU字段的类型从更改为string,它就不能工作。
关于如何实现我的目标,有什么建议吗?
DATA: GR_COLUMNS TYPE REF TO CL_SALV_COLUMNS_TABLE,
GR_TABLE TYPE REF TO CL_SALV_TABLE.
TYPES: BEGIN OF IT_STR,
EDATU TYPE VBEP-EDATU,
vbeln type vbep-vbeln,
END