我想创建一个包含开始日期和结束日期之间所有日期的表格。如果没有列出插入中的每个日期,最好的方法是什么?
例如:开始日期是1/1/2018,结束日期是1/4/2018,然后结果表应该是:
date
------
1/1/2018
1/2/2018
1/3/2018
1/4/2018
答案 0 :(得分:1)
您是否考虑过使用以下内容:
INSERT INTO your_table
SELECT ...
FROM ...
WHERE date_column BETWEEN DATE '2001-01-01' AND DATE '2018-04-01'
请参阅文档中的以下内容:
答案 1 :(得分:1)
您可以使用sequence(date, date)
生成范围内的日期:
presto:default> create table dates as
select x from unnest(sequence(date '2018-01-01', date '2018-01-04')) t(x);
...
presto:default> select * from dates;
x
------------
2018-01-01
2018-01-02
2018-01-03
2018-01-04
(4 rows)
注意:自从Presto版本0.197开始,sequence
与date
一起使用。