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时光
1楼 · 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"不在('','');

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

樱桃小丸子0093
2楼-- · 2020-08-16 13:41

嗨,拉尔斯

非常感谢您的帮助!

您是正确的!
我们的TCURR表中有一个空格

我们正在尝试在SLT方面对其进行修复,还有许多其他存储过程可供使用,这些存储过程取决于Same table字段。我希望这将是一个很好的解决方案,而不是更改系统中所有可用的脚本。 节省时间和成本。

如果您有其他意见,请告诉我。

一周热门 更多>