因此,我试图找出今天的日期(GETDATE())
与特定表格(targetdate)
中的目标日期之间的差异
当我使用DATEDIFF功能时,它在计算中包括非工作日(周末和银行假日)。虽然我们从第三方供应商处提供给我们的日期calandar表会告诉您周末,但它并没有告诉您银行假期。
幸运的是,数据库中有另一个名为 - 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
答案 0 :(得分:0)
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;