sql >> Databasteknik >  >> RDS >> Sqlserver

Beräkna alla söndagar, måndagar...lördagar mellan två dagar i SQL Server

Jag tror att din fråga ger rätt resultat men skulle kunna förenklas lite.

Det är dock beroende av SET DATEFIRST inställning.

datepart(dw,[Date]) = 1 kommer att räkna antalet måndagar om SET DATEFIRST är 1.

Prova detta:

set datefirst 7 -- Sunday
select datepart(dw, '20111227')
set datefirst 1 -- Monday
select datepart(dw, '20111227')

Resultat:

-----------
3

-----------
2

Uppdatering: En annan fråga som gör detsamma.

select count(*) as Daycount
from master..spt_values as Number
where Number.type = 'P' and
      dateadd(day, Number.number, @StartDate) <= @EndDate and
      datepart(dw, dateadd(day, Number.number, @StartDate)) = 1


  1. Rails 3-migreringar:boolesk (mysql vs postgreSQL)

  2. Flera PHP WHILE-loopar som använder samma fråga

  3. Oracle ODBC-anslutningsfel (med Oracles vanliga ODBC-drivrutiner)

  4. UTL_FILE.FOPEN()-proceduren accepterar inte sökvägen för katalogen?