sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL Dev, hur man beräknar antalet veckodagar mellan 2 datum

Det här svaret liknar Nicholas, vilket inte är en överraskning eftersom du behöver en underfråga med en CONNECT BY för att få fram en lista med datum. Datumen kan sedan räknas när man kontrollerar veckodagen. Skillnaden här är att den visar hur man får veckodagens räkningsvärde på varje rad av resultaten:

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

Antalet är inklusive, vilket innebär att det inkluderar FromDate och ThruDate . Den här frågan förutsätter att dina datum inte har en tidskomponent; om de gör det måste du TRUNC datumkolumnerna i underfrågan.



  1. Vilka DBMS tillåter en order by av ett attribut som inte finns i select-satsen?

  2. Vad gör kolon tecken :i en SQL-fråga?

  3. Hur använder man LOAD_FILE för att ladda en fil till en MySQL-blob?

  4. Symfony2 skapar och behåller entitetsrelationer