在Presto的开始日期和结束日期之间将日期插入表格

时间:2018-02-28 03:38:42

标签: sql presto

我想创建一个包含开始日期和结束日期之间所有日期的表格。如果没有列出插入中的每个日期,最好的方法是什么?

例如:开始日期是1/1/2018,结束日期是1/4/2018,然后结果表应该是:

date
------
1/1/2018
1/2/2018
1/3/2018
1/4/2018

2 个答案:

答案 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开始,sequencedate一起使用。