获取SQL Server中两个日期(星期五除外)之间的日期差
我有以下两个日期:获取SQL Server中两个日期(星期五除外)之间的日期差,sql,sql-server,Sql,Sql Server,我有以下两个日期: startDate = '2017-04-04' and endDate = '2017-04-12' 我想使用SQL Server查找这两个日期之间的总天数,不包括“星期五” 非常感谢SQL Server专家提供的任何帮助!!提前谢谢只需在查询中添加以下子句即可 select count(*) from table where startDate >= '2017-01-12' and endDate <= '2017-04-27' and datena
startDate = '2017-04-04' and endDate = '2017-04-12'
我想使用SQL Server查找这两个日期之间的总天数,不包括“星期五”
非常感谢SQL Server专家提供的任何帮助!!提前谢谢只需在查询中添加以下子句即可
select count(*) from table
where startDate >= '2017-01-12' and endDate <= '2017-04-27'
and datename(WEEKDAY,startdate))<>'Friday'
从表中选择计数(*)
当开始日期>='2017-01-12'和结束日期时,您可以使用DATENAME
检查“星期五”
执行以下操作:
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
为了更容易理解,请使用所讨论的给定日期编写整个查询。@TanvirArjel:请参阅更新,但不确定为什么有两个日期以及它如何影响接下来的结果。根据你的说法,答案应该是什么?应该是7,因为他们之间有一个星期五。用它检查…选择DATEDIFF(day,'2017-04-04','2017-04-12')作为DiffDate。这返回8。你的代码应该返回7。DATEDIFF检查你需要跨越的边界,以便在任何方向返回日期。但这并不能解决我的问题!!有没有可能我期望的是什么?…仍然没有按预期工作!!核对一下。。。选择DATEDIFF(day,'2017-04-04','2017-04-22')作为DiffDate…此返回18,您的代码应返回15,因为它们之间有3个星期五,但您的代码返回16
7