sap hana studio中如何从TCURR中的GDATU字段进行日期转换?

2020-08-16 12:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我试图从表TCURR...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我试图从表TCURR.GDATU转换日期,我尝试了各种不起作用的方法

系统详细信息:SAP HANA 1.0 SP 12

从SCHEMA.TCURR中选择(99999999- cast(" GDATU"为Integer))作为" CasT"

错误:[6930]属性值不是数字; int sqlsub(int'99999999',int [here] int(string" GDATU")),GDATU =''[string]; checkNull false

选择KURST,FCURR,TCURR,CAST(左(99999999-GDATU,4)* 10000 + RIGHT(左(99999999-GDATU,6),2)* 100 +右(99999999-GDATU,2)作为日期) SCHEMA.TCURR

起START_DATE

错误:"无法在61 ms 768 µs内执行'select KURST,FCURR,TCURR,...'。SAP DBTech JDBC:[339]:无效数字:[6930]属性值不是数字; daydate逗号 (string string(int sqlsub(int'99999999',int [here] int(string" GDATU")))),daydate daydate(int sqladd(int sqladd(int times(int int(string midstru(string" __common1"),int '1',int'4')),int'10000'),int times(int int(string rightstru(string midstru(string" __common1",int'1',int'6'),int'2') ),int'100')),int int(string rightstru(字符串" __common1",int'2'))))))),GDATU =''[string]; checkNull false"

请让我知道如何从TCURR.GDATU转换日期?

谢谢!

2条回答
Doze时光
2020-08-16 13:25 .采纳回答

好吧,所以您显然知道GDATU是"反"日期格式,其中存储了每个数字的9er补码,而不是YYYYMMDD(标准DATS格式)。

这就是为什么您尝试 通过减号99999999-GDATU来"取消补码"日期数字。

到目前为止,如此正确。

现在,您收到的错误是由于GDATU中的任何内容转换为整数引起的。

错误消息声称:属性值不是数字。

现在是时候检查您的表是否存在GDATU中无法转换为数字的条目。

像''或''(空格和空字符串)之类的东西在这里很合适。

由于您正在查看TCURR(转换率表),因此很有可能在表中找到一种"初始记录",其中的GDATU值为空。

最简单的方法是使用过滤器简单地排除那些条目(如果有多个条目的话)。

选择
(99999999-TO_INTEGER(" GDATU")as" GDATU_DATS"
来自
SCHEMA.TCURR
,其中
" GDATU"不在('','');

中,如果还有其他条目,则无法转换 变成整数,您可能需要先清理表。

一周热门 更多>