sql - 在 Snowflake sql 中计算两个日期之间的 20 个工作日
问题描述
- 我想计算日期 2 是否大于雪花中日期 1 的 20 个业务。
样本数据
Date1 Date2
2021-01-16 2021-04-01
2020-03-02 2020-04-05
2020-06-09 2020-06-30
我正在尝试这样的事情只是为了看看我是否可以正确地看到 20 个工作日的计算,但它给出了错误的结果
SELECT *,
DATEADD(DAY, 25 + DECODE(EXTRACT(DOW FROM DATE1), 4, 2, 5, 2, 6, 7, 8, 9, 10, 1, 0, 11, 12,13, 14,15,16, 17,18,19, 20),
DATE1) BD_20
FROM (SELECT * FROM table);
解决方案
据推测,按工作日,您的意思是周一至周五。如果是这样,20 个工作日正好是 4 周,也就是 28 天。
那将是:
select t.*,
(date2 > date1 + interval '28 day') as flag
from t;
推荐阅读
- elasticsearch - ElasticSearch 单翻转索引配置
- javascript - 如何从 REACT 中的另一个同级或导入组件更新同级组件的状态
- r - 删除数据框每一列中的相同值,并指定给定列中值的位置
- python-3.x - 它是 fastparquet 模块中的错误吗
- python - Python - 将多个列表与具有重复键值的“zip”组合起来
- jquery - 多个版本的车把,需要避免它们之间的冲突
- dll - 经典 ASP 错误:Server.CreateObject 失败或找不到入口点 DllRegisterServer
- fortran - 如何找出用于编译 fortran .mod 文件的 gfortran 版本
- intellij-idea - 如果云选项在 Intellij 中不可用,应该怎么做
- java - 证明大哦符号