我使用SLT将表加载到我们的Hana DB中。SLT使用ABAP字典,并将时间戳作为十进制(15,0)发送到HANA DB。通过计算视图中的计算列进入HANA数据库后,我尝试将小数转换为时间戳或第二日期。表如下所示:

我运行一个小的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我得到以下错误:


问题是,它有时也会起作用:

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

计算视图中的错误是:

在HANA中,有没有人找到一个好的方法将ABAP时间戳(Decimal (15,0))转换为时间戳或Seconddate?
发布于 2018-04-26 00:09:02
问题出在ABAP数据类型上。我将目标变量声明为DEC(15,0)。提取数据的ABAP在某些情况下将时间戳四舍五入到第60秒。一旦进入Target Hana,当时间看起来像"20150101121060“,最后两位数是60秒时,to_timestamp(target_field)将返回无效。这是无效的,并且会失败。基础Hana层并不关心,因为它只是将长度14放入字段中。我将源变量更改为DEC(21,0)。这消除了ABAP舍入,并解决了我的问题。
发布于 2017-02-02 17:14:39
有一些可用的转换函数,你可以在这里使用(不幸的是,没有很好的文档)。
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 https://stackoverflow.com/questions/41991886
复制相似问题