在 PostgreSQL 中,很容易生成两个日期之间所有日期的列表:
>>> select generate_series('2013-01-01'::date, '2013-01-06'::date, '1 day'::interval)::date i;
i
2013-01-01
2013-01-02
2013-01-03
2013-01-04
2013-01-05
2013-01-06
是否有可能在 Exasol 中获得相同的结果?
您可以使用connect by
生成数字,然后将其转换为日期:
with n as (
select level - 1 as n
from dual
connect by level < 6
)
select add_days(date '2013-01-01', n.n)
from n;
以下 SQL SELECT 可用于在给定时间间隔内返回天数列表,类似于 Gordon 的解决方案,如Exasol文章上的创建日期表中所述
select
add_days(date '2013-01-01', level-1) as dates
from dual
connect by level <= days_between('2013-01-06','2013-01-01')+1
order by local.dates;