【问题标题】:Snowflake- Calculate day of Quarter雪花 - 计算季度的一天
【发布时间】:2020-02-25 00:31:27
【问题描述】:

Snowflake 有一个简单的函数 Quarter(timestamp()) ,它返回当前季度,但想知道如何做 QTR 的一天,所有教程都参考 Postgres/ sql server。

目标 - 创建一个日期表,并显示接下来 20 年该季度的哪一天。

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:
    SELECT column1::timestamp as d,
        DATE_TRUNC('QUARTER',d) as q,
        DATEDIFF('day',q, d) as doq
    FROM VALUES ('2019-10-30'),('2019-10-01');
    

    在季度的第一天给出 0,所以如果你需要它是 1,你可以 +1 那个数据差异。

    D                         Q                         DOQ
    2019-10-30 00:00:00.000   2019-10-01 00:00:00.000   29
    2019-10-01 00:00:00.000   2019-10-01 00:00:00.000   0 
    

    [编辑:]在重新阅读您的 20 年表目标后,这里是我过去在雪花中使用的一些代码:

    CREATE OR REPLACE TABLE twenty_years_of_days(date) AS
        SELECT DATEADD(day, rn, CURRENT_DATE) as date,
              DATE_TRUNC('QUARTER',date) as quarter,
              DATEDIFF('day',quarter, date) as doq
        FROM (
            SELECT row_number() over(order by 1) as rn
            FROM TABLE(GENERATOR(rowCount => 365*20)) v
        );
    

    【讨论】:

    • 我真的没有从你的描述中得到你想要的东西。如果这不是这个问题的遗漏点,我会问另一个问题,并展示一些输入和所需输出的示例.. cmets 中缺少格式使得这太难了。
    • 不用担心,我已经解决了,但我将您的答案作为解决方案核对了。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2010-09-23
    • 2022-08-19
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多