SAP HANA 将 YYYYWW 转换为 MM/DD/YYYY

SAP HANA convert YYYYWW to MM/DD/YYYY

需求是从tableS990的SPWOC字段中获取星期一和星期日。我想不出任何可以让我提取这些信息的函数组合。该 table 字段的示例输出是 202135。因此,我试图从 2021 年的第 35 周开始获取星期一和星期日。非常感谢任何关于从哪里开始的想法!

是否使用 ISO 周计算(即 SAP 标准默认值)或系统使用 non-ISO 周计算方法无法单独从 table 确定。

要了解这一点,您需要与了解 SAP 系统配置方式的人交谈。

但就问题的范围而言,我们假设您使用的系统使用 ISO 方法,其中周从星期一开始到星期日结束。

即便如此,计算 closed-form 中第 X 周的星期一和星期日的日期也并非易事。 TO_DATE() 函数也不支持从 YYYYWWYYYY-MM-DD 的直接转换。

因此,除了自己编写函数来执行正确的日历运算外,我只认为以下选项是可行的方法:

  1. 确保 HANA table _SYS_BIC.M_TIME_DIMENSION 已加载您感兴趣的时间范围内的数据 (day-level)。这可以通过HANA Studio 或 Web IDE 中的生成时间数据 功能。如果需要,请查看文档以获取详细信息。

  2. 使用时间维度 table,您可以获得各种预先计算的日期表示和转换,包括 CALWEEKDAY_OF_WEEK

这样你就可以 运行 一个 SELECT 这样的:

select 
     year
   , week
   , date_sql
   , to_nvarchar( date_sql, 'DAY')
from 
    "_SYS_BI"."M_TIME_DIMENSION" 
where 
    calweek = '202135'
and day_of_week in (0, 6);


YEAR    WEEK    DATE_SQL    TO_NVARCHAR(DATE_SQL,'DAY')
2021    35      30/08/2021  MONDAY                     
2021    35      05/09/2021  SUNDAY