如何在 AWS Athena 上生成日期列表

ahm*_*sam 3 sql amazon-web-services athens amazon-athena

我需要生成两个日期开始日期和结束日期之间的日期列表,我需要在 AWS Athena 上从 2022 年 1 月 1 日到年底,而不创建表我只需要查询视图,输出应该是:

|date|
|--|
|1/1/2022 |
|2/1/2022 |
|3/1/2022 |
Run Code Online (Sandbox Code Playgroud)

等到特定日期。

Gur*_*ron 5

您可以使用sequence支持日期和时间戳的函数:

sequence(
   current_date, -- some start date
   current_date + interval '3' day, -- some end date 
   interval '1' day) -- step
Run Code Online (Sandbox Code Playgroud)

然后使用unnest它来展平生成的数组:

select t.date
from (select sequence(current_date, current_date + interval '3' day, interval '1' day) dates),
     unnest(dates) as t(date);
Run Code Online (Sandbox Code Playgroud)

输出:

日期
2022-09-26
2022-09-27
2022-09-28
2022-09-29