Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Hari Perniagaan Antara Dua Tarikh dalam MySQL?

Bagaimana untuk Mengira Hari Perniagaan Antara Dua Tarikh dalam MySQL?

DDD
Lepaskan: 2025-01-16 18:23:12
asal
279 orang telah melayarinya

How to Calculate Business Days Between Two Dates in MySQL?

Kira hari bekerja antara dua tarikh dalam MySQL

Fungsi NETWORKDAYS() Excel menyediakan cara yang mudah untuk menentukan bilangan hari bekerja antara dua tarikh yang ditentukan. Walau bagaimanapun, MySQL tidak mempunyai fungsi terbina dalam yang serupa.

Untuk menyelesaikan masalah ini, berikut ialah ungkapan MySQL yang boleh digunakan sebagai alternatif:

<code class="language-sql">5 * (DATEDIFF(@E, @S) DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) + WEEKDAY(@E) + 1, 1)</code>
Salin selepas log masuk

Ungkapan ini mengandungi pengiraan berikut:

  1. Kira perbezaan hari bekerja: (DATEDIFF(@E, @S) DIV 7) Kira berapa minggu ada antara tarikh mula @S dan tarikh tamat @E. Bahagikan dengan 7 untuk mendapatkan bilangan minggu yang lengkap, kita darabkannya dengan 5 untuk mengambil kira bilangan hari bekerja setiap minggu.
  2. Kira indeks permulaan dan akhir hari bekerja: 7 WEEKDAY(@S) dan 7 WEEKDAY(@E) Kira indeks hari bekerja tarikh mula dan tarikh tamat ( Isnin ialah 0, 1 untuk Selasa, dan seterusnya). Penambahan 1 adalah untuk memadankan indeks dengan rentetan angka yang dibincangkan di bawah.
  3. Dapatkan kiraan hari bekerja: PERTENGAHAN('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) rentetan WEEKDAY,(@1) rentetan tunggal WEEKDAY,(@1) Watak ini mewakili bilangan hari bekerja antara gabungan hari bekerja yang ditentukan.

Rentetan angka yang disediakan dibina untuk mewakili bilangan hari bekerja antara setiap kombinasi hari bekerja (Isnin hingga Isnin, Selasa hingga Selasa, dsb.). Dengan menggabungkan indeks hari bekerja dan mendapatkan semula aksara yang sepadan, kami mendapat kiraan hari bekerja.

Andaian dan had:

  • Fungsi ini menganggap bahawa @E tidak lebih awal daripada @S.
  • Ia mengabaikan cuti umum, jadi kiraan hari bekerja yang dikira mungkin tidak tepat untuk senario yang melibatkan cuti.
  • Rentetan nombor dikodkan keras ke dalam ungkapan dan mungkin perlu dikemas kini jika konvensyen hari bekerja berbeza (mis. jika Ahad dianggap sebagai hari bekerja).

Atas ialah kandungan terperinci Bagaimana untuk Mengira Hari Perniagaan Antara Dua Tarikh dalam MySQL?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan