Heim >Datenbank >MySQL-Tutorial >Wie berechnet man Geschäftszeiten zwischen zwei Zeiten in Oracle SQL?
Berechnen von Geschäftszeiten in Oracle SQL
Bei der Arbeit mit Daten, die Zeitintervalle umfassen, ist es häufig erforderlich, Geschäftszeiten zu berücksichtigen, um die Stunden genau berechnen zu können zwischen angegebenen Zeiten. In Oracle SQL können Sie dies erreichen, indem Sie eine Kombination aus Datumsfunktionen und mathematischen Berechnungen nutzen.
Berechnen von Stunden mit Geschäftszeiten
Um die Differenz in Stunden zwischen a Start- und Endzeit basierend auf den Geschäftszeiten. Sie können die folgenden Schritte ausführen:
1. Konvertieren Sie Zeiträume in ganze Tage:
2. Behandeln Sie die Stunden innerhalb des letzten Tages:
3. Multiplizieren, um in Minuten umzuwandeln:
Beispielabfrage:
SELECT task, start_time, end_time, ROUND( ( -- Calculate full weeks difference ( TRUNC( end_time, 'IW' ) - TRUNC( start_time, 'IW' ) ) * (10/24) * (6/7) -- Add full days for final week + LEAST( TRUNC( end_time ) - TRUNC( end_time, 'IW' ), 6 ) * (10/24) -- Subtract full days before start date - LEAST( TRUNC( start_time ) - TRUNC( start_time, 'IW' ), 6 ) * (10/24) -- Add hours of final day + LEAST( GREATEST( end_time - TRUNC( end_time ) - 8/24, 0 ), 10/24 ) -- Subtract hours of day before range starts - LEAST( GREATEST( start_time - TRUNC( start_time ) - 8/24, 0 ), 10/24 ) ) -- Multiply to convert to minutes * 24, 15 -- Number of decimal places ) AS work_day_hours_diff FROM your_table;
Diese Abfrage berechnet die Stunden basierend auf den Geschäftszeiten für die bereitgestellten Beispieldaten unter Berücksichtigung die Wochenendstunden.
Das obige ist der detaillierte Inhalt vonWie berechnet man Geschäftszeiten zwischen zwei Zeiten in Oracle SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!