Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Tempoh Tugas Berdasarkan Waktu Perniagaan dalam Oracle SQL?

Bagaimana untuk Mengira Tempoh Tugas Berdasarkan Waktu Perniagaan dalam Oracle SQL?

Linda Hamilton
Linda Hamiltonasal
2024-12-24 15:37:15777semak imbas

How to Calculate Task Duration Based on Business Hours in Oracle SQL?

Kira Jam Berdasarkan Waktu Perniagaan dalam Oracle SQL

Mengira tempoh tugas berdasarkan waktu perniagaan adalah keperluan biasa dalam sistem pengurusan tenaga kerja. Formula standard untuk mengira bilangan jam antara masa mula dan tamat tidak akan menggabungkan waktu perniagaan, yang berpotensi mengakibatkan waktu terlampau nyata. Untuk menangani perkara ini, kami boleh memanfaatkan keupayaan manipulasi tarikh dan masa Oracle SQL yang mantap untuk melaraskan pengiraan berdasarkan waktu perniagaan yang ditentukan.

Data sampel yang disediakan mengandungi maklumat tugas, masa mula dan masa tamat. Tugasnya adalah untuk mengira tempoh setiap tugas dengan mengambil kira waktu perniagaan, iaitu Isnin hingga Sabtu dari 8:00 PG hingga 6:00 PTG.

Satu pendekatan melibatkan penggunaan pertanyaan hierarki berkorelasi untuk menjana hari kerja yang berasingan dan kemudian jumlah jam untuk setiap hari. Pertanyaan menjana baris berasingan untuk setiap hari kerja yang berpotensi untuk setiap tugas. Ia kemudian mengira masa mula hari kerja dengan menentukan masa kemudian antara masa mula tugas dan 8:00 PG pada hari itu. Masa tamat dikira dengan cara yang sama, menggunakan bahagian bawah masa tamat tugasan dan 6:00 PM pada hari tersebut.

Setelah masa mula dan tamat untuk setiap hari kerja telah ditentukan, jumlah jam boleh dikira dengan menolak masa mula dari masa tamat. Waktu harian kemudian disimpulkan untuk mencapai jumlah jam yang dibelanjakan untuk setiap tugas.

Penyelesaian alternatif ialah menggunakan formula yang mengambil kira secara langsung waktu perniagaan. Formula ini mengambil kira beberapa aspek:

  • Perbezaan antara permulaan minggu ISO (yang mewakili bilangan minggu lengkap) didarab dengan bilangan jam tersedia setiap minggu (10 jam * 6 hari).
  • Bilangan hari penuh dalam minggu terakhir dengan mengira perbezaan antara akhir minggu dan akhir minggu lalu.
  • Bilangan hari sebelum tarikh mula dengan mencari perbezaan antara permulaan minggu dan tarikh mula.
  • Bilangan waktu perniagaan pada hari akhir, iaitu perbezaan yang lebih rendah antara masa tamat dan tamat hari bekerja atau 10 jam.
  • Bilangan jam pada hari sebelum julat bermula, sekali lagi menggunakan perbezaan yang lebih rendah antara masa mula dan permulaan hari kerja atau 10 jam.

Mendarab formula ini dengan 24 menukarkannya kepada minit dan kemudian membahagikannya dengan 15 memberikan bilangan jam perniagaan.

Kedua-dua penyelesaian mengira tempoh tugasan secara berkesan berdasarkan waktu perniagaan yang ditetapkan, memastikan pengesanan dan pelaporan yang tepat mengenai masa yang dihabiskan untuk tugasan. Pilihan antara dua pendekatan bergantung pada faktor seperti saiz set data, pertimbangan prestasi dan keperluan perniagaan khusus.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Tempoh Tugas Berdasarkan Waktu Perniagaan dalam Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn