sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan får jeg optælling af weekenddage fra en række datoer

Her er den

DECLARE @STARTDATE DATE='01/JAN/2014'    
DECLARE @ENDDATE DATE='01/MAR/2014'

;WITH  CTE as
(
    SELECT  CAST(@STARTDATE AS DATE) as [DAYS] 
    UNION ALL
    SELECT DATEADD(DAY,1,[DAYS]) [DAYS]
    FROM    CTE
    WHERE   [DAYS] < CAST(@ENDDATE AS DATE)
)
SELECT DISTINCT COUNT([DAYS]) OVER(PARTITION BY DATENAME(WEEKDAY,[DAYS])) CNT,
DATENAME(WEEKDAY,[DAYS]) WD
FROM CTE 
WHERE DATENAME(WEEKDAY,[DAYS]) = 'SATURDAY' OR DATENAME(WEEKDAY,[DAYS]) = 'SUNDAY'
ORDER BY DATENAME(WEEKDAY,[DAYS]) 

Her er dit resultat



  1. Glemt administratoradgangskode på Postgres (Windows-installation), kan ikke nulstilles

  2. Hvordan henter man data fra en SQL Server-database i C#?

  3. Jeg laver online quiz-type script i PHP. Det er bedre at bruge cookies eller sessioner

  4. Hurtig måde at finde anvendelser af DB-objekter i SQL Server 2008?