snowflake-cloud-data-platform - 雪花 - 计算季度的一天
问题描述
Snowflake 有一个简单的函数 Quarter(timestamp()) ,它返回当前季度,但想知道如何做 QTR 的一天,所有教程都参考 Postgres/sql server。
目标 - 创建一个日期表,并显示下一个 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 那个 datadiff。
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
);
推荐阅读
- javascript - 从 api 获取数据并操作状态
- python - 我才开始用 python 编码大约一个月。我可以覆盖以前解析的数据吗?问题在体内继续
- python-3.x - 在 Python 中实现 Typescript 接口
- jwt - Flask 会话和 JSON Web 令牌之间的区别
- python - 四阶导数 - 我的图表是错误的,请告诉我我的错误
- c++ - 是否可以在 C++ 中执行以下编译时编程任务
- python - 关于使用 python 读取大约 1600 万行的巨大 csv 文件
- oracle - AWS DMS(数据迁移服务) - 复制停止且没有错误
- c++ - 使用哈希表设置实现
- listview - Flutter ListView base64图像与Image.memory一起显示时闪烁