sql >> Databáze >  >> RDS >> Oracle

Oracle SQl Dev, jak vypočítat počet pracovních dnů mezi 2 daty

Tato odpověď je podobná odpovědi Nicholase, což není překvapením, protože potřebujete dílčí dotaz s CONNECT BY sestavit seznam termínů. Data pak lze spočítat při kontrole dne v týdnu. Rozdíl je v tom, že ukazuje, jak získat hodnotu počtu dnů v týdnu na každém řádku výsledků:

SELECT
  FromDate,
  ThruDate,
  (SELECT COUNT(*)
     FROM DUAL
     WHERE TO_CHAR(FromDate + LEVEL - 1, 'DY') NOT IN ('SAT', 'SUN')
     CONNECT BY LEVEL <= ThruDate - FromDate + 1
  ) AS Weekday_Count
FROM myTable

Počet je včetně, což znamená, že zahrnuje FromDate a ThruDate . Tento dotaz předpokládá, že vaše data nemají časovou složku; pokud ano, budete muset TRUNC sloupce data v dílčím dotazu.



  1. SQL*Plus nespouští skripty SQL, které provádí SQL Developer

  2. Přidat FULLTEXTOVÝ index do Doctrine 2 pomocí anotací?

  3. důležitost identifikátoru odkazu v mysql_real_escape_string()

  4. JSONb data:skutečná data interně?