【发布时间】:2017-06-23 21:26:51
【问题描述】:
我是 Postgres 的初学者,正在就我遇到的查询问题寻求帮助。我正在尝试计算两个日期之间的工作日数(不包括周六、周日和节假日)。这就是我想要做的事情:
Select column1, column2, (current_date - defined_date) as elapsed_days
from mytable
where elapsed_days excludes sat, sun, and holidays
【问题讨论】:
-
您可能需要一个表格,其中包含相关时间范围内的所有假期和周末。
-
没有简单的方法。如果你有一个假期列表,这至少是可能的。
-
如果我跳过假期而只排除周末,有没有简单的方法?谢谢!
-
在下面查看我的答案.. 或在您的正常查询中使用我的人口查询的“generate_series”部分,并包括“其中提取(来自 cal_date 的日期)不在 (0,6) 中的位置
-
如果您只想排除周末,这里有很多问题 (f.ex. here) -- 如果您也想排除假期,您需要一个基于
COUNT(*)的解决方案,其中一个表格,其中包含要排除的所需假期(可能还有 一些 个周末要包括在内,因为在某些国家/地区,还有一些额外的假期,它们只是“移动”到周末)。 PostgreSQL 没有内置的数据库/表,其中包含该数据(出于显而易见的原因)。
标签: sql postgresql count