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

SAP HANA Decimal to timestamp or seconddate SLT

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

我 运行 一个小的 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

我收到以下错误:

问题是,它有时也有效:

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

计算视图的错误为:

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

有可用的转换函数,您可以在此处使用(不幸的是没有很好的记录)。

 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                               

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