SAP HANA-SQL-如何在WHERE子句中进行日期比较选择

2020-08-21 04:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我有一个连接一些表的...

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

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


大家好,

我有一个连接一些表的视图。

我已使用以下语法格式化了列 A (从表1中获得)

 LOCALTOUTC(以CAST(" A"为秒),'AUSNSW','sap')

我将新列命名为 B

我正在寻找示例SQL语句来查询带有WHERE子句中的比较列 B 的视图。

我不确定它可能是什么语法。

感谢您的帮助。

Tri

3条回答
SAP浪
2020-08-21 04:59 .采纳回答

给我的印象是,您在问"我可以使用哪种日期格式与LOCALTOUTC的输出进行比较?"

如果这是正确的,那么对您来说有个好消息: LOCALTOUTC返回日期数据类型。

并且日期数据类型没有格式。 日期具有特定的值,但是打印值的方式对值没有任何影响。

因此,要与日期值进行比较,您需要另一种日期数据类型。

< p>例如,您可以直接比较

 LOCALTOUTC(...)=当前日期

,因为两个函数都返回日期值。

,如果您想提供日期值作为文本,则需要将该值转换为日期值。 为此,可以使用TO_DATE函数,该函数将两个字符串作为输入:

1.一个表示日期值

2的字符串。 一个字符串,表示第一个字符串的格式。

看起来可能像这样:

 TO_DATE('14 .02.2020','DD.MM.YYYY')

您真的想非常清楚日期值和表示需要转换的日期值的字符串之间的区别。

有时,当不使用TO_DATE函数时,HANA会 尝试通过尝试使用预定义的格式来自动/隐式地将字符串转换为日期值。

不要依赖于此,在语句中写出字符串-日期转换。

< p>回到您的原始问题:

 SELECT * 
FROM
(SELECT LOCALTOUTC(CAST(" A" AS SECONDDATE),'AUSNSW','sap')as B from your_table )
WHERE B = TO_DATE('14 .02.2020','DD.MM.YYYY');

应该可以正常工作(假设您的日期字符串和格式字符串匹配)。

一周热门 更多>