【问题标题】:Using DateDiff to work as Excel Networkdays使用 DateDiff 作为 Excel Networkdays
【发布时间】:2015-01-05 08:54:46
【问题描述】:

祝大家新年快乐。

所以我试图找出今天的日期 (GETDATE()) 和特定表中的目标日期 (targetdate) 之间的区别

当我使用 DATEDIFF 函数时,它在计算中包括非工作日(周末和银行假日)。虽然我们从第三方供应商提供给我们的日期日历表会告诉您周末,但它不会告诉您银行假日。

幸运的是,数据库中有另一个名为 - ih_non_work_days 的表。

日期的格式是"2014-12-25 00:00:00.000",例如在该表中。

如何使用我的 "targetdate" and today's date 计算天数差异 - 不包括 ih_non_work_days 数据库中存在的日期?

所以现在我的基本脚本看起来像 -

SELECT   com.comm_reference AS 'Referance'
     ,com.current_task_target_date AS 'TargetDate'
             , DATEDIFF(D,com.current_task_target_date,GETDATE()) AS 'Incorrect Date Calculation'
FROM [dbo].[em_communication] as com

【问题讨论】:

    标签: sql datediff


    【解决方案1】:
    SELECT C.comm_reference AS Referance ,C.current_task_target_date AS TargetDate ,DATEDIFF(d, C.current_task_target_date,CURRENT_TIMESTAMP) - NoWorkDays AS 'Days Past Target Date' FROM [dbo].[em_communication] C CROSS APPLY ( SELECT COUNT(*) AS NoWorkDays FROM [dbo].[ih_non_work_days] D WHERE D.date_off BETWEEN C.current_task_target_date AND CURRENT_TIMESTAMP ) N;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      相关资源
      最近更新 更多