【问题标题】:inserting dates into a table between a start and end date in Presto在 Presto 的开始日期和结束日期之间的表格中插入日期
【发布时间】:2018-08-07 20:41:31
【问题描述】:

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

例如:开始日期是 2018 年 1 月 1 日,结束日期是 2018 年 1 月 4 日,那么结果表应该是:

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

【问题讨论】:

    标签: sql presto


    【解决方案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)
    

    注意:sequencedates 一起使用,因为 Presto 版本 0.197。

    【讨论】:

      【解决方案2】:

      您是否考虑过使用类似的东西:

      INSERT INTO your_table 
      SELECT ... 
      FROM ... 
      WHERE date_column BETWEEN DATE '2001-01-01' AND DATE '2018-04-01'
      

      请参阅文档中的以下位:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-05
        • 2017-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多