Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Hari Perniagaan dengan Tepat Antara Dua Tarikh dalam Oracle SQL Tanpa Menggunakan Fungsi atau Prosedur?

Bagaimana untuk Mengira Hari Perniagaan dengan Tepat Antara Dua Tarikh dalam Oracle SQL Tanpa Menggunakan Fungsi atau Prosedur?

Mary-Kate Olsen
Lepaskan: 2025-01-04 03:53:39
asal
214 orang telah melayarinya

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

Mengira Hari Perniagaan dalam Oracle SQL (Tanpa Fungsi atau Prosedur)

Semasa mengira hari perniagaan antara dua tarikh dalam Oracle SQL menggunakan formula:

((to_char(Tarikh Lengkap,'J') - to_char(InstallDate,'J')) 1) - (((to_char(CompleteDate,'WW') (52 ((to_char(CompleteDate,'YYYY') - to_char(InstallDate,'YYYY')))) ) - to_char(InstallDate,'WW'))2)

mungkin menghasilkan kebanyakan hasil yang tepat, kadang-kadang menyimpang selama 2 hari atau kurang. Ketidakkonsistenan ini berpunca daripada mengabaikan faktor berikut:

  • Formula mengandaikan semua bulan mempunyai 30 hari, yang tidak benar.
  • Ia tidak termasuk hujung minggu (Sabtu dan Ahad).

Untuk menangani isu ini, formula yang lebih tepat ialah:

(TRUNC(Tarikh Selesai) - TRUNC(Tarikh Pasang) ) 1 -
((((TRUNC(Tarikh Selesai,'D'))-(TRUNC(Tarikh Pasang,'D')))/ 7)*2) -
(KES BILA TO_CHAR(InstallDate,'DY','nls_date_language=english')='SUN' THEN 1 ELSE 0 END) -
(KES BILA TO_CHAR(CompleteDate,'DY','nls_date_language=english')='SAT' THEN 1 LAIN 0 TAMAT)

Di sini, TRUNC() mengalih keluar komponen masa daripada tarikh, dan TO_CHAR() mengekstrak hari bekerja. Pengiraan kini menggabungkan bilangan hari antara tarikh yang dipotong, menolak hujung minggu dan melaraskan tarikh mula atau tamat hujung minggu.

Dengan memasukkan penambahbaikan ini, formula mengira hari perniagaan dengan tepat, sejajar dengan fungsi NETWORKDAYS dalam Excel .

Atas ialah kandungan terperinci Bagaimana untuk Mengira Hari Perniagaan dengan Tepat Antara Dua Tarikh dalam Oracle SQL Tanpa Menggunakan Fungsi atau Prosedur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan