SAP HANA十进制到SLT的时间戳或二次日期

时间:2017-02-01 23:39:43

标签: date abap hana slt

我正在使用SLT将表加载到我们的Hana DB中。 SLT使用ABAP字典并将时间戳作为十进制(15,0)发送到HANA数据库。通过计算视图中的计算列进入HANA数据库后,我尝试将小数转换为时间戳或二次更新。表看起来像这样:

Table Definition

我运行一个小型SLT转换来填充第27-30列。 SLT中的ABAP层根据数据库事务填充列。

当我尝试将列28-30转换为时间戳或二次更新时,问题就出现了。使用这样的语法:

Select to_timestamp(DELETE_TIME)
 FROM SLT_REP.AUSP

Select to_seconddate(DELETE_TIME)
 FROM SLT_REP.AUSP

我收到以下错误:

Timestamp enter image description here

问题是,它也有效一段时间了: enter image description here

计算列中的语法如下所示:

Calc Column

计算视图中的错误为:

enter image description here

有没有人找到将ABAP时间戳(十进制(15,0))转换为HANA中的时间戳或二次更新的好方法?

2 个答案:

答案 0 :(得分:1)

有可用的转换功能,你可以在这里使用(遗憾的是没有很好的文档记录)。

 select tstmp_to_seconddate(TO_DECIMAL(20110518082403, 15, 0)) from dummy;

 TSTMP_TO_SECONDDATE(TO_DECIMAL(20110518082403,15,0))
 2011-05-18 08:24:03.0                               

答案 1 :(得分:1)

问题在于ABAP数据类型。我将目标变量声明为DEC(15,0)。提取数据的ABAP在某些情况下将时间戳四舍五入到第60秒。一旦进入Target Hana,当时间看起来像“20150101121060”时,to_timestamp(target_field)将返回无效,最后两位数字是第60秒。这是无效的,会失败。基础Hana层并不在乎,因为它只是将长度14放入一个字段中。我将源变量更改为DEC(21,0)。这消除了ABAP舍入并解决了我的问题。