Heim >Datenbank >MySQL-Tutorial >Wie kann man Geschäftstage in Oracle SQL genau berechnen, ohne Funktionen oder Prozeduren zu verwenden?

Wie kann man Geschäftstage in Oracle SQL genau berechnen, ohne Funktionen oder Prozeduren zu verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-31 08:26:10806Durchsuche

How to Accurately Calculate Business Days in Oracle SQL Without Using Functions or Procedures?

Geschäftstage in Oracle SQL berechnen: Verbesserte Formel ohne Funktionen oder Prozeduren

Das Berechnen von Geschäftstagen zwischen zwei Daten in Oracle SQL ist für a unerlässlich Vielzahl von Geschäftsanwendungen. Hier ist ein erweiterter Ansatz, um dies zu erreichen, ohne auf integrierte Funktionen oder Prozeduren angewiesen zu sein.

Der vorherige Code, den Sie bereitgestellt haben, wies gelegentlich Diskrepanzen in seinen Berechnungen auf. Um dieses Problem zu beheben, ziehen Sie die folgenden Änderungen in Betracht:

  • Kürzung der Datumsangaben mit TRUNC(CompleteDate) und TRUNC(InstallDate), um Zeitkomponenten zu entfernen und sich ausschließlich auf die Geschäftstage zu konzentrieren.
  • Berechnen die Wochentagsdifferenz mit (TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')) und dividieren um 7, um Wochenenden zu berücksichtigen.
  • Wenden Sie eine bedingte Logik an, um anzupassen, dass Sonntag oder Samstag der Beginn oder das Ende des Zeitraums sind, da diese nicht als Werktage gelten.

Hier ist das Verfeinerter Code:

SELECT OrderNumber, InstallDate, CompleteDate,
  (TRUNC(CompleteDate) - TRUNC(InstallDate) ) +1 - 
  ((((TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')))/7)*2) -
  (CASE WHEN TO_CHAR(InstallDate,'DY','nls_date_language=english')='SUN' THEN 1 ELSE 0 END) -
  (CASE WHEN TO_CHAR(CompleteDate,'DY','nls_date_language=english')='SAT' THEN 1 ELSE 0 END) as BusinessDays
FROM Orders
ORDER BY OrderNumber;

Diese erweiterte Berechnung sollte genaue Geschäftstagsergebnisse liefern und mit der NETZWERKTAGE-Funktion von Excel übereinstimmen.

Das obige ist der detaillierte Inhalt vonWie kann man Geschäftstage in Oracle SQL genau berechnen, ohne Funktionen oder Prozeduren zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn