2015-01-05 2 views
0

С Новым годом.Использование DateDiff для работы в качестве Excel в сети

Так что я пытаюсь работать разницу между текущей датой (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 

ответ

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; 
Смежные вопросы