Ich habe eine Tabelle, die das Datum und die Uhrzeit speichert, zu der eine Aufgabe beginnt und endet, und basierend auf der Anzahl der geleisteten Stunden wird die Zahlung am Monatsende vorgenommen.Berechnung der Arbeitszeit in Orakel
Die Vorgangsdauer unterscheidet sich von 2 Stunden bis 3 Tage.
Die Arbeitszeit eines Tages beträgt 8 Stunden.
Ich muss die Anzahl der Arbeitsstunden an einem Tag finden.
Die in meiner db gespeicherten Daten wie diese
sno | start_time | end_time |
---------------------------------------------------
1 |06-10-2016 09:30:00 | 06-10-2016 17:00:00 |
2 |12-10-2016 08:00:00 | 15-10-2016 13:00:00 |
ich die gesamten Arbeitsstunden erhalten müssen, die 36:30 Stunden und wandeln es als 5 Tage Tage.
Wenn ich meine Abfrage ausgeführt habe, konnte ich diese Ausgabe erhalten.
sno | start_time | end_time | time_diff |
--------------------------------------------------------------------
1 |06-10-2016 09:30:00 | 06-10-2016 17:00:00| +00 07:30:00.000000|
2 |12-10-2016 08:00:00 | 15-10-2016 13:00:00| +03 05:00:00.000000|
Meine Frage:
SELECT DISTINCT sno, start_time,end_time,
TO_TIMESTAMP (end_time,'DD-MM-YYYY HH24:MI:SS') - TO_TIMESTAMP (start_time,'DD-MM-YYYY HH24:MI:SS') AS time_diff
FROM employee WHERE TO_CHAR((start_time),'MM-YYYY')='10-2016' AND emp_no ='18754';
Meine gewünschte Ausgabe ist
|Total_no_days|
---------------
| 5 |
Aber ich bin nicht bewusst, wie jetzt, um fortzufahren. Jemand bitte helfen.
Ich verstehe nicht, warum es 5 Tage werden wird. Bedeuten Sie einfach für jeden Datensatz, bis zum nächsten Tag, wenn "time" in time_diff weniger als 8:00:00 ist? –