首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAP HANA十进制到时间戳或第二日期SLT

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

Stack Overflow用户
提问于 2017-02-02 07:39:43
回答 2查看 5.6K关注 0票数 2

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

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

当我尝试将列28-30转换为时间戳或第二日期时,问题就出现了。使用如下语法:

代码语言:javascript
复制
Select to_timestamp(DELETE_TIME)
 FROM SLT_REP.AUSP

Select to_seconddate(DELETE_TIME)
 FROM SLT_REP.AUSP

我得到以下错误:

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

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

计算视图中的错误是:

在HANA中,有没有人找到一个好的方法将ABAP时间戳(Decimal (15,0))转换为时间戳或Seconddate?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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舍入,并解决了我的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-02-02 17:14:39

有一些可用的转换函数,你可以在这里使用(不幸的是,没有很好的文档)。

代码语言:javascript
复制
 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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41991886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档