You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Palantir Contour中计算日期之间的工作日

Palantir Contour计算两日期列工作日天数的解决方案

方案一:基础工作日计算(仅排除周六周日)

由于date_diff仅能计算总天数,无法直接过滤周末,可通过自定义表达式组合现有函数实现:

date_diff(start_date, end_date) 
- (2 * floor((date_diff(start_date, end_date) + day_of_week(start_date)) / 7)) 
- case when day_of_week(end_date) = 0 then 1 else 0 end 
- case when day_of_week(start_date) = 6 then 1 else 0 end

逻辑说明:

  • date_diff(start_date, end_date):获取两个日期之间的总天数
  • 2 * floor((date_diff(...) + day_of_week(start_date)) / 7):计算这段时间内包含的完整周末天数(每周2天)
  • 最后两个case语句:调整首尾日期为周末时的多扣减情况(day_of_week返回0代表周日,6代表周六)

方案二:包含自定义节假日的工作日计算

如果需要排除公司自定义节假日,需结合节假日维度表实现:

  1. 创建一个维护节假日日期的维度表(例如命名为holidays,包含holiday_date列)
  2. 在Contour中关联主表与节假日表,筛选出start_date到end_date区间内的节假日数量
  3. 用方案一的基础工作日数减去节假日数量,表达式示例:
-- 基础工作日数
(date_diff(start_date, end_date) 
- (2 * floor((date_diff(start_date, end_date) + day_of_week(start_date)) / 7)) 
- case when day_of_week(end_date) = 0 then 1 else 0 end 
- case when day_of_week(start_date) = 6 then 1 else 0 end)
-- 减去区间内的节假日数量
- (select count(*) from holidays where holiday_date between start_date and end_date)

注意:需定期更新节假日维度表,确保包含所有需要排除的日期。

内容的提问来源于stack exchange,提问作者Questionado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:19:54