2017-04-04 79 views

回答

1

您可以使用DATENAME檢查'Friday'做到這一點,是這樣的:

DECLARE @startDate DATETIME 
DECLARE @endDate DATETIME 
SET @startDate = '2017-04-04' 
SET @endDate = '2017-04-12' 

Declare @count int 
set @count=0 

    while @startDate < @endDate 
    Begin 
     IF DATENAME(dw, @startDate) <> 'Friday' 
      SET @count = @count + 1 
     SET @startDate = DateAdd(d, 1, @startDate) 
    END 
select @count 

這將導致:

7 
+0

它的未來8.什麼應該根據你的答案? –

+0

它應該是7,因爲他們之間有一個星期五..用它來檢查.... SELECT DATEDIFF(day,'2017-04-04','2017-04-12')AS DiffDate..This is returned 8 ..你的代碼應該返回7 .. – TanvirArjel

+0

datediff檢查你需要在任一方向跨越達到日期的邊界。 –

0

略低於條款添加到您的查詢

select count(*) from table 
where startDate >= '2017-01-12' and endDate <= '2017-04-27' 
and datename(WEEKDAY,startdate))<>'Friday' 
+0

For mor e可以理解,請填寫給定日期的整個查詢。 – TanvirArjel

+0

@TanvirArjel:看到更新,但不知道爲什麼你有兩個日期,它是如何影響結果 – TheGameiswar

+0

我需要使用DATEDIFF()函數作爲值不是來自任何表.. – TanvirArjel

相關問題