错误报告-SQL语句中NULL值的SAP HANA日期类型

2020-09-09 13:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)版本:SAP HANA版本(fa...

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

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


版本:SAP HANA版本(fa/hana1sp12)

错误:
有一个记录为DATE数据类型列,该列的值为NULL。 然后,当我使用过滤器DATE IS NULL条件命令SQL语句时,系统判断它是有效值而不是无效值。

例如:
### [应该正确,但系统认为不正确。]

从表WHERE ORDER_NUMBER = number中选择RELEASE_DATE,并且release_date为空;


### [应该是错误的,但是系统认为它是正确的。]

-
从表WHERE ORDER_NUMBER = number中选择RELEASE_DATE,然后release_date ='00000000';


-
从表WHERE ORDER_NUMBER = number'中选择RELEASE_DATE,然后release_date ='';

-
从表WHERE ORDER_NUMBER = number中选择RELEASE_DATE,并且release_date不为空;

(4.1 kB)
3条回答
悠然的二货
2020-09-09 14:17

您似乎在这里误解了不同语句的结果,因为HANA Studio会将所有结果呈现为问号。 通常,问号用于指示NULL值,但是,它也用于无法从HANA正确映射到JAVA/JDBC的值。

此类"不可映射"值之一是特殊日期 可以创建例如 按日期'000000'。

此值既不是可以映射到JAVA日历的有效日期,也不是NULL。 这是一个特殊的日期,表示"早于任何其他日期",并用作日期列的初始值。

IS NULL对该值的求值为FALSE-但<,=,>比较的工作原理为

一种仔细检查列中实际值的方法是使用NON-JDBC客户端(例如hdbsql)来查看数据。

一周热门 更多>