sql >> Databáze >  >> RDS >> Sqlserver

Získejte počet víkendů mezi dvěma daty v SQL

Vyzkoušel jsem tuto logiku s několika okrajovými případy a zdá se, že to funguje.

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

Příkazy CASE můžete změnit v závislosti na tom, jak chcete zacházet s případy, kdy počáteční nebo koncové datum je víkend. V mém případě nezahrnuji víkend, pokud je počátečním nebo koncovým datem sobota nebo neděle.



  1. sqlplus, jak najít podrobnosti o aktuálně připojené databázové relaci

  2. Jak funguje SQLite Upper()

  3. Jak předat ArrayList<> jako klauzuli IN v dotazu SQL v MySQL

  4. MySQL více cizích klíčů