sql >> Database >  >> RDS >> Oracle

Volgende werkdag (maandag - vrijdag) in Oracle?

Deze dingen worden normaal gesproken gedaan met een tabel die alle werkdagen in een jaar vermeldt in plaats van een naïeve formule zoals:

CASE WHEN (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) < 5 
  THEN 1 + (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) 
  ELSE 1 
END --(on monday to thursday this returns 2 to 5, on fri/sat/sun this returns 1)

CASE WHEN (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) < 5 
  THEN TRUNC (SYSDATE) + 1 
  ELSE TRUNC (SYSDATE + 4), 'IW')  
END --(on monday to thursday this returns tomorrow's date, on fri/sat/sun it returns next monday's date)

Door gebruik te maken van een tafel kunt u zaken als feestdagen, nationale feestdagen, religieuze feesten, stemdagen, rouwdagen, ad hoc vrije dagen die kunnen voorkomen om bedrijfs- of politieke redenen enz. meenemen. Het onderhouden van de tafel wordt dan een belangrijke taak. Het ophalen van de volgende werkdag is in wezen een kwestie van het opvragen van de tabel voor de MIN(date) WHERE date > current_date



  1. OracleBulkCopy Memory Leak (OutOfMemory-uitzondering)

  2. Waarom is de zoekopdracht niet bijgewerkt nadat u op de update-knop hebt geklikt?

  3. link weergeven in php

  4. Query's uitvoeren op PostgreSQL voor rapport Open-High-Low-Close (OHLC)