sql >> Database teknologi >  >> RDS >> Oracle

Oracle:Dage mellem to dato og Ekskluder hverdage hvordan man håndterer negative tal

Tilpasset fra mit svar her:

Få antallet af dage mellem mandagene i begge uger (ved hjælp af TRUNC( datevalue, 'IW' ) som en NLS_LANGUAGE uafhængig metode til at finde mandagen i ugen) tilføj derefter ugedagen (mandag =1, tirsdag =2 osv., til maksimalt 5 for at ignorere weekender) for slutdatoen og træk ugedagen fra for startdatoen. Sådan:

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. Left Outer Join returnerer ikke alle rækker fra mit venstre bord?

  2. Sammenligning af replikeringsløsninger fra Oracle og MySQL

  3. PostgreSQL:kørende antal rækker for en forespørgsel 'efter minut'

  4. Hvordan vælger man 1d array fra 2d array?