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

2020-09-09 13:17发布

         点击此处--->   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)

         点击此处--->   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条回答
悠然的二货
1楼-- · 2020-09-09 14:17

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

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

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

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

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

Climb_Ma
2楼-- · 2020-09-09 14:04

然后 ...

问题:

1。 为什么剂量数据库引擎将空白和" 00000000"视为相同?

2。 如何查看数据库中的REALLY值? JDBC,ODBC和.NET驱动程序为列返回NULL值。 您如何推荐方法?

谢谢。

昵称总是被占用
3楼-- · 2020-09-09 13:56

嗨,建坤,

我认为您需要在其他地方报告此情况。 转到 https://launchpad.support.sap.com 并创建票证。

亲切的问候

一周热门 更多>