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

Teradata SQL如何实现Excel WORKDAY函数的工作日计算功能?

在Teradata SQL中实现排除周末的工作日计算

对应Excel中WORKDAY函数的功能,Teradata有两种可行解决方案:

方案一:使用内置ADD_WORKDAYS函数(推荐)

Teradata 14.10及以上版本提供了ADD_WORKDAYS函数,直接支持排除周末的工作日计算,语法简洁:

SELECT ADD_WORKDAYS(CURRENT_DATE, 15) AS target_workday;
  • 参数1:起始日期(这里用CURRENT_DATE表示当前日期)
  • 参数2:需要添加的工作日数量
  • 默认自动排除周六、周日,无需额外配置

方案二:手动逻辑计算(兼容低版本)

如果你的Teradata版本不支持ADD_WORKDAYS,可以通过日期运算手动实现:
核心逻辑是计算N个工作日需要跨越的周末天数,再叠加到基础天数上。

通用SQL示例(计算当前日期后15个工作日):

SELECT 
    CURRENT_DATE 
    + 15 
    + -- 计算需要额外补充的周末天数
      ((15 + EXTRACT(WEEKDAY FROM CURRENT_DATE) - 1) / 5) * 2 
      - CASE 
          WHEN EXTRACT(WEEKDAY FROM CURRENT_DATE) + 15 > 5 THEN 2 
          ELSE 0 
        END AS target_workday;

逻辑说明:

  • EXTRACT(WEEKDAY FROM date)返回值:1=周一,2=周二,…,5=周五,6=周六,7=周日
  • ((n + weekday -1)/5)*2计算N个工作日跨越的完整周末数量(每5个工作日对应2天周末)
  • CASE语句处理起始日期靠近周末的特殊情况,避免多算周末天数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:42:04