sql >> Databasteknik >  >> RDS >> Oracle

Oracle:Dagar mellan två datum och Exkludera veckodagar hur man hanterar negativa tal

Anpassat från mitt svar här:

Få antalet dagar mellan måndagarna i båda veckorna (med TRUNC( datevalue, 'IW' ) som en NLS_LANGUAGE oberoende metod för att hitta måndagen i veckan) lägg sedan till veckodagen (måndag =1, tisdag =2, etc., till maximalt 5 för att ignorera helger) för slutdatumet och subtrahera veckodagen för startdatumet. Så här:

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. Finns det några alternativ till ett gåbord för många-till-många föreningar?

  2. Hur man hittar kolumnnamn för alla tabeller i alla databaser i SQL Server

  3. Byt in en partition i SQL Server (T-SQL)

  4. Hur man får identitetskolumnvärden utan att nämna identitetskolumnnamn i Select - SQL Server / T-SQL självstudie del 46