sql >> Databasteknik >  >> RDS >> Sqlserver

Få antal helger mellan två datum i SQL

Jag provade den här logiken med flera kantfall och det verkar fungera.

SELECT DATEDIFF(d, @dFrom, @dTo)/7+1
    + CASE WHEN DATEPART(dw,@dFrom) IN (1,7) THEN -1 ELSE 0 END
    + CASE WHEN DATEPART(dw,@dTo) IN (1,7) THEN -1 ELSE 0 END

Du kan ändra CASE-satserna beroende på hur du vill hantera fall där start- eller slutdatumet är i en helg. I mitt fall tar jag inte med helgen om start- eller slutdatumet är en lördag eller söndag.



  1. Allmänt fel:1008 OCISTmtExecute:ORA-01008:alla variabler är inte bundna

  2. Hur hämtar man data från databasen för att visa den i csv-format på en webbsida?

  3. PDO::PARAM för typ decimal?

  4. Databas:En tabell för varje språk eller en tabell med en språkkolumn