SAP HANA计算视图-日期错误

2020-08-22 10:58发布

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

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


嗨,

我正在尝试获取两列(通过考试日期和计划考试日期)之间的日期差。

我将这两列声明为String(10)。 我无法在SAP hana云平台中将类型声明为日期,因此我选择了字符串。

这是我的计算视图语法:

IF(isNull(" Passed_exam_date")或" Passed_exam_date" =''或isNull(" Planned_exam_date")或" Planned_exam_date" ='','',string(daysbetween(date(" Passed_exam_date"),date(" Planned_exam_date"))))。

表达失败。 但是我遇到了以下错误:

错误:(dberror)303-无效的DATE,TIME或TIMESTAMP值:搜索表错误:[6931]属性值不是日期或语法错误;字符串if(int或(int或(int或(int isull( 字符串" Planned_exam_date"),int notull(字符串" Passed_exam_date")),int eq(字符串" Planned_exam_date",字符串'')),int eq(字符串" Passed_exam_date",字符串'')),字符串''),字符串字符串 (int days_between(daydate [here] daydate(字符串" Passed_exam_date"),daydate daydate(字符串" Planned_exam_date")))))),(Passed_exam_date ='3/14/2020'[string],Planned_exam_date ='2/29/2020 '[串]); checkNull false

为此提供一些解决方案。

谢谢

Sudharsna

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

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


嗨,

我正在尝试获取两列(通过考试日期和计划考试日期)之间的日期差。

我将这两列声明为String(10)。 我无法在SAP hana云平台中将类型声明为日期,因此我选择了字符串。

这是我的计算视图语法:

IF(isNull(" Passed_exam_date")或" Passed_exam_date" =''或isNull(" Planned_exam_date")或" Planned_exam_date" ='','',string(daysbetween(date(" Passed_exam_date"),date(" Planned_exam_date"))))。

表达失败。 但是我遇到了以下错误:

错误:(dberror)303-无效的DATE,TIME或TIMESTAMP值:搜索表错误:[6931]属性值不是日期或语法错误;字符串if(int或(int或(int或(int isull( 字符串" Planned_exam_date"),int notull(字符串" Passed_exam_date")),int eq(字符串" Planned_exam_date",字符串'')),int eq(字符串" Passed_exam_date",字符串'')),字符串''),字符串字符串 (int days_between(daydate [here] daydate(字符串" Passed_exam_date"),daydate daydate(字符串" Planned_exam_date")))))),(Passed_exam_date ='3/14/2020'[string],Planned_exam_date ='2/29/2020 '[串]); checkNull false

为此提供一些解决方案。

谢谢

Sudharsna

付费偷看设置
发送
3条回答
hengyuye
1楼 · 2020-08-22 11:50.采纳回答

对于调试,我建议首先为date(" Passed_exam_date")和date(" Planned_exam_date")创建一个计算列,然后运行该仓库并检查转换中是否没有错误。 如果可行,请使用daysbetween(date(" Passed_exam_date"),date(" Planned_exam_date"))表达式创建另一个计算列,然后再次进行验证。 然后添加表达式的下一部分,并检查它在哪一点开始引发错误。

还检查是否为计算列使用了正确的数据类型。

路亽曱_Ryan
2楼-- · 2020-08-22 11:38

当我像TO_DATE(" Passed_exam_date",'mm/dd/yyyy ')in SQL。

四川大学会员
3楼-- · 2020-08-22 11:26

我认为您已经就此主题打开了另一个问题。 请参阅我的更新。

尊敬的Sudharsana

这可能是因为日期值在数据中可能为空。 因此,您可能需要在应用公式daysbetween()之前检查是否为null

例如

IF(isNull(fkdat)或isNull(BLDAT),0,daysbetween(date( fkdat),date(BLDAT))).....

也请避免将结果转换为字符串

可能会帮助您

此致,

Venkat

一周热门 更多>