Heim >Datenbank >MySQL-Tutorial >Wie kann man Geschäftstage zwischen zwei Daten in Oracle SQL genau berechnen, ohne Funktionen oder Prozeduren zu verwenden?
Berechnen von Geschäftstagen in Oracle SQL (ohne Funktionen oder Prozeduren)
Beim Berechnen von Geschäftstagen zwischen zwei Daten in Oracle SQL mithilfe der Formel:
((to_char(CompleteDate,'J') - to_char(InstallDate,'J')) 1) - (((to_char(CompleteDate,'WW') (52 ((to_char(CompleteDate,'YYYY') - to_char(InstallDate,'YYYY'))))) - to_char(InstallDate,'WW' ))2)
kann größtenteils genaue Ergebnisse liefern, es kann gelegentlich zu Abweichungen von 2 Tagen oder mehr kommen weniger. Diese Inkonsistenz ergibt sich aus der Nichtberücksichtigung der folgenden Faktoren:
Um diese Probleme anzugehen, eine genauere Formel ist:
(TRUNC(CompleteDate) - TRUNC(InstallDate) ) 1 -
((((TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')))/ 7)*2) -
(FALL WANN TO_CHAR(InstallDate,'DY','nls_date_lingual=english')='SUN' THEN 1 ELSE 0 END) -
(CASE WHEN TO_CHAR(CompleteDate,'DY','nls_date_sprache=english')='SAT' THEN 1 ELSE 0 END)
Hier TRUNC() entfernt die Zeitkomponente aus den Datumsangaben und TO_CHAR() extrahiert den Wochentag. Die Berechnung berücksichtigt jetzt die Anzahl der Tage zwischen den gekürzten Daten, subtrahiert Wochenenden und passt die Start- oder Enddaten des Wochenendes an.
Durch die Einbeziehung dieser Verbesserungen berechnet die Formel Geschäftstage genau und stimmt mit der Funktion NETZWERKTAGE in Excel überein .
Das obige ist der detaillierte Inhalt vonWie kann man Geschäftstage zwischen zwei Daten 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!