SQL 排除周末和公共/银行假日

Posted

技术标签:

【中文标题】SQL 排除周末和公共/银行假日【英文标题】:SQL exclude weekends and public/bank holidays 【发布时间】:2021-04-27 10:29:15 【问题描述】:

在我的表格中,我有一列充满日期。所有日期仅从 2021 年初到现在。

我目前正在使用此代码来获取不同时间戳的计数:

SELECT COUNT(DISTINCT TRUNC(order_timestamp))

我可以在此代码中或之后添加什么以排除周末吗?

【问题讨论】:

【参考方案1】:

您可以使用以下方法忽略周末:

SELECT COUNT(DISTINCT CASE WHEN DATE_PART(dow, TRUNC(order_timestamp)) BETWEEN 1 AND 5
                           THEN TRUNC(order_timestamp)
                      END)

DATE_PART() 返回以 0 开头的星期几,表示星期日。所以工作日的值介于15 之间。

【讨论】:

以上是关于SQL 排除周末和公共/银行假日的主要内容,如果未能解决你的问题,请参考以下文章

从日期计算中排除周末和自定义日期(即假期)

前几个月的 SQL 固定日期

银行大数据平台架构设计及应用 | 周末送资料

银行容器云平台架构设计及实践参考 | 周末送资料

MySQL排除节假日,计算日期差

银行数据中心自动化运维设计实施及Ansible应用 | 周末送资料