我有以下兩個日期:獲取的時間差不包括在SQL Server週五兩個日期之間
startDate = '2017-04-04' and endDate = '2017-04-12'
我想找到使用SQL Server這兩個日期之間的天排除'Fridays'
的總數。
任何來自SQL Server專家的幫助將不勝感激!提前致謝!!
我有以下兩個日期:獲取的時間差不包括在SQL Server週五兩個日期之間
startDate = '2017-04-04' and endDate = '2017-04-12'
我想找到使用SQL Server這兩個日期之間的天排除'Fridays'
的總數。
任何來自SQL Server專家的幫助將不勝感激!提前致謝!!
您可以使用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
略低於條款添加到您的查詢
select count(*) from table
where startDate >= '2017-01-12' and endDate <= '2017-04-27'
and datename(WEEKDAY,startdate))<>'Friday'
For mor e可以理解,請填寫給定日期的整個查詢。 – TanvirArjel
@TanvirArjel:看到更新,但不知道爲什麼你有兩個日期,它是如何影響結果 – TheGameiswar
我需要使用DATEDIFF()函數作爲值不是來自任何表.. – TanvirArjel
它的未來8.什麼應該根據你的答案? –
它應該是7,因爲他們之間有一個星期五..用它來檢查.... SELECT DATEDIFF(day,'2017-04-04','2017-04-12')AS DiffDate..This is returned 8 ..你的代碼應該返回7 .. – TanvirArjel
datediff檢查你需要在任一方向跨越達到日期的邊界。 –