雪花 - 计算季度天数
Snowflake- Calculate day of Quarter
Snowflake 具有 returns 当前季度的简单函数 Quarter(timestamp()),但想知道如何做 QTR 的一天,所有教程都参考 Postgres/ sql 服务器。
目标 - 创建一个日期 table,并显示未来 20 年该季度的哪一天。
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 年目标后 table,这是我过去在 snowflake 中使用的一些代码:
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
);
Snowflake 具有 returns 当前季度的简单函数 Quarter(timestamp()),但想知道如何做 QTR 的一天,所有教程都参考 Postgres/ sql 服务器。
目标 - 创建一个日期 table,并显示未来 20 年该季度的哪一天。
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 年目标后 table,这是我过去在 snowflake 中使用的一些代码:
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
);