如何在SAP HANA中用SQL获取2019-10-24至当前日期的日期列表
在SAP HANA中生成指定日期范围的日期列表SQL实现
方法1:使用SAP HANA内置的SERIES_GENERATE_DATE函数
这是最简洁高效的实现方式,SAP HANA提供了专门生成日期序列的函数,直接指定起始日期、日期间隔和结束日期即可:
SELECT SERIES_VALUE AS date_list FROM SERIES_GENERATE_DATE('DAY', '2019-10-24', CURRENT_DATE);
参数说明:
'DAY':表示按天生成序列,也可替换为'MONTH'/'YEAR'生成月/年序列'2019-10-24':序列的起始日期CURRENT_DATE:序列的结束日期(当前系统日期)
方法2:使用递归CTE(适用于所有HANA版本)
如果你的HANA版本不支持SERIES_GENERATE_DATE,可以用递归公共表表达式(CTE)来生成日期序列:
WITH date_recursive AS ( SELECT TO_DATE('2019-10-24', 'YYYY-MM-DD') AS date_list FROM DUMMY UNION ALL SELECT ADD_DAYS(date_list, 1) FROM date_recursive WHERE date_list < CURRENT_DATE ) SELECT date_list FROM date_recursive ORDER BY date_list;
逻辑说明:
- 初始化递归起点:从指定的起始日期开始
- 递归步骤:每次给当前日期加1天
- 终止条件:当生成的日期小于当前日期时停止
- 最后排序输出日期列表
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

