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

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

Mary-Kate Olsen
Lepaskan: 2024-12-31 08:26:10
asal
773 orang telah melayarinya

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

Kira Hari Perniagaan dalam Oracle SQL: Formula Diperbaiki tanpa Fungsi atau Prosedur

Mengira hari perniagaan antara dua tarikh dalam Oracle SQL adalah penting untuk pelbagai aplikasi perniagaan. Berikut ialah pendekatan yang dipertingkatkan untuk mencapai perkara ini tanpa bergantung pada fungsi atau prosedur terbina dalam.

Kod sebelumnya yang anda berikan menghadapi percanggahan sekali-sekala dalam pengiraannya. Untuk menyelesaikan masalah ini, pertimbangkan pengubahsuaian berikut:

  • Potong tarikh menggunakan TRUNC(CompleteDate) dan TRUNC(InstallDate) untuk mengalih keluar komponen masa dan fokus pada hari perniagaan sahaja.
  • Kira perbezaan hari minggu menggunakan (TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')) dan bahagikan dengan 7 untuk mengambil kira hujung minggu.
  • Gunakan logik bersyarat untuk melaraskan Ahad atau Sabtu sebagai permulaan atau akhir tempoh tersebut, kerana ia tidak dianggap hari perniagaan.

Inilah yang diperhalusi kod:

SELECT OrderNumber, InstallDate, CompleteDate,
  (TRUNC(CompleteDate) - TRUNC(InstallDate) ) +1 - 
  ((((TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')))/7)*2) -
  (CASE WHEN TO_CHAR(InstallDate,'DY','nls_date_language=english')='SUN' THEN 1 ELSE 0 END) -
  (CASE WHEN TO_CHAR(CompleteDate,'DY','nls_date_language=english')='SAT' THEN 1 ELSE 0 END) as BusinessDays
FROM Orders
ORDER BY OrderNumber;
Salin selepas log masuk

Pengiraan yang dipertingkatkan ini harus memberikan keputusan hari perniagaan yang tepat, sejajar dengan fungsi NETWORKDAYS Excel.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Hari Perniagaan dengan Tepat 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