首页 > 解决方案 > 在 Snowflake sql 中计算两个日期之间的 20 个工作日

问题描述

  1. 我想计算日期 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);

标签: sqlsnowflake-cloud-data-platformsnowflake-schema

解决方案


据推测,按工作日,您的意思是周一至周五。如果是这样,20 个工作日正好是 4 周,也就是 28 天。

那将是:

select t.*,
       (date2 > date1 + interval '28 day') as flag
from t;

推荐阅读