Check gibt es jeden Wochentag innerhalb der time gegeben SQL server

Ich habe mich gefragt, sql es irgendwelche Operator / function in sql server zu erzählen über Wochentag zwischen gegebener Tag.

Beispiel: 11-19-2016 to 11-29-2016 Ich möchte überprüfen, ob es Dienstag zwischen diesem Tag gibt?

   

Versuche dies:

 declare @start varchar(100)='11-19-2016' declare @end varchar(100)='11-29-2016' ;with dateRange as ( select date = dateadd(dd, 1, @start) where dateadd(dd, 1, @start) < @end union all select dateadd(dd, 1, date) from dateRange where dateadd(dd, 1, date) < @end ) select date,DATENAME(dw,CAST(DATEPART(m, GETDATE()) AS VARCHAR) + '/'+ CAST(DATEPART(d, date) AS VARCHAR) + '/'+ CAST(DATEPART(yy, getdate()) AS VARCHAR)) as 'Day' from dateRange where (DATENAME(dw,CAST(DATEPART(m, GETDATE()) AS VARCHAR) + '/'+ CAST(DATEPART(d, date) AS VARCHAR) + '/'+ CAST(DATEPART(yy, getdate()) AS VARCHAR)))='Tuesday' 

Die folgende Abfrage verwendet eine rekursive Abfrage, um den datesbereich zu entfalten.

Dann nutzt DATEPART nur die Dienstags aus.
Aber man könnte stattdessen auch DATENAME verwenden.

 declare @StartDate DATE = '2016-11-19'; declare @EndDate DATE = '2016-11-29'; --SET DATEFIRST 7; -- The dw for tuesday is 3 when @@datefirst = 7 (default setting) -- Since it depends on a usersetting, lets calculate it anyway. declare @TuesdayWeekday INT = (7-@@datefirst + 2)%7+1; ;with DATES as ( select @startdate as [Date] union all select dateadd(day, 1, [Date]) from DATES where [Date] < @enddate ) select [Date], datepart(dw,[Date]) as day_of_week, datename(dw,[Date]) as day_of_weekname from DATES where datepart(dw,[Date]) = @TuesdayWeekday;