У меня есть две следующие даты:

startDate = '2017-04-04'  and  endDate = '2017-04-12'

Я хотел бы найти общее количество дней между этими двумя датами, исключая 'Fridays' с использованием SQL Server.

Любая помощь от экспертов по SQL Server будет высоко оценена! Заранее спасибо!

1
TanvirArjel 4 Апр 2017 в 12:13

2 ответа

Лучший ответ

Вы можете использовать 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
1
Satish Garg 4 Апр 2017 в 10:43

Просто добавьте предложение ниже к вашему запросу

select count(*) from table
where startDate >= '2017-01-12' and endDate <= '2017-04-27' 
and datename(WEEKDAY,startdate))<>'Friday'
0
TheGameiswar 4 Апр 2017 в 09:21