Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle:Dni między dwiema datami i Wyklucz dni tygodnia, jak obsługiwać liczby ujemne

Na podstawie mojej odpowiedzi tutaj:

Uzyskaj liczbę dni między poniedziałkami w obu tygodniach (za pomocą TRUNC( datevalue, 'IW' ) jako NLS_LANGUAGE niezależna metoda znajdowania poniedziałku tygodnia), następnie dodaj dzień tygodnia (poniedziałek =1, wtorek =2 itd., do maksymalnie 5, aby zignorować weekendy) dla daty końcowej i odejmij dzień tygodnia dla data rozpoczęcia. Tak:

SELECT ( TRUNC( end_date, 'IW' ) - TRUNC( start_date, 'IW' ) ) * 5 / 7
       + LEAST( end_date - TRUNC( end_date, 'IW' ) + 1, 5 )
       - LEAST( start_date - TRUNC( start_date, 'IW' ) + 1, 5 )
          AS WeekDaysDifference
FROM   your_table


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak możemy zdefiniować rozmiar parametru wyjściowego w procedurze składowanej?

  2. Firmy programistyczne, które pracują nad Oracle D2k, PLSQL Technologies w Noida

  3. Wyrocznia:LONG czy CLOB?

  4. jak korzystać z XMLImporter i FndXdfCmp w Oracle EBS

  5. Jak sprawdzić, czy wartość DataReader nie jest pusta?