2016-07-06 6 views
0

こんにちは私は2つの日付の間にWDを動作させる次の機能を持っています。私の質問は...私は同じ日付の2つの日付を持っています。 06/07/2016私はWDが0として表示されたいが、代わりに1として表示されている。2日間の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

関連する問題