【发布时间】:2022-01-04 12:35:10
【问题描述】:
在 SAP 中,一些日期以 floats 的形式存储在表中,如下表 AUSP 的列 ATFLV 所示,其值为 2.0181218000000000E+07:
txt
MANDT OBJEK ATINN ATZHL MAFID KLART ADZHL ATWRT ATFLV
100 000000000000004148 9999999400 001 O 023 0000 2.0181218000000000E+07
我知道这些应该是日期,但我找不到任何要转换的函数。我考虑过使用 Add_seconds(假设存储的值以毫秒为单位),但我不知道使用 1/1/1900 或 1/1/1970 的基准日期是什么?
感谢您的帮助。
29.11.2021 编辑
只是为了添加一些上下文,我正在使用 HANA DB Studio 创建一个计算视图来执行此转换,使用 HANA SQL 中的表函数。
【问题讨论】:
-
请粘贴文本而不是图像,以便人们可以简单地再次复制并粘贴他们的答案。我为你做了。
-
2.0181218000000000E+07表示20181218(E+07 是将小数点分隔符右移7位)。无需转换,格式为 YYYYMMDD 即 2018 年 12 月 18 日。 -
我不是 SAP 人员,但我是一个快速的 Google 提出了多个对 CTCV_CONVERT_FLOAT_TO_DATE 的引用
-
@NickW 您认为这是一个 ABAP 问题,但它似乎是一个 HANA SQL 问题。
-
不需要逆向工程,我的第二条评论已经描述了逻辑,对应这个ABAP代码:
DATA(date) = CONV d( CONV num8( numeric_value ) ).当然需要的双重转换需要一点解释。
标签: sql date casting floating-point hana