2016-07-06 43 views
0

嗨我有以下函數來計算兩個日期之間的WD。我的查詢是...我有兩個日期,例如相同的日期。 06/07/2016,我希望WD顯示爲0,但它顯示爲1.是否有改變WD的工作方式?兩個日期之間的SQL工作日

ALTER FUNCTION [dbo].[CalculateNumberOFWorkDays] (@StartDate datetime, @EndDate datetime) 
RETURNS int 
AS 
BEGIN 

SET @StartDate = DATEADD(dd, DATEDIFF(dd, 0, @StartDate), 0) 
SET @EndDate = DATEADD(dd, DATEDIFF(dd, 0, @EndDate), 0) 

DECLARE @WORKDAYS INT 
SELECT @WORKDAYS = (DATEDIFF(dd, @StartDate, @EndDate) + 1) 
       -(DATEDIFF(wk, @StartDate, @EndDate) * 2) 
      -(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END) 
      -(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END) 

RETURN @WORKDAYS END 

回答

0

破解了......

SELECT @WORKDAYS = (DATEDIFF(dd, @StartDate, @EndDate) + 0) 

似乎已經做的工作​​! :-)

+0

很高興你明白了,相當快!只是向上看,'+ 0'是不需要的。 – scsimon

相關問題