Bagaimana untuk Mengira Hari Perniagaan Antara Tarikh dalam MySQL Tidak Termasuk Hujung Minggu?

Susan Sarandon
Lepaskan: 2024-11-02 22:39:03
asal
460 orang telah melayarinya

How to Calculate Business Days Between Dates in MySQL Excluding Weekends?

Mengira Hari Perniagaan Antara Tarikh dalam MySQL Tidak Termasuk Hujung Minggu

Untuk memastikan perbezaan hari antara dua tarikh manakala tidak termasuk hujung minggu, kami menggunakan MySQL's WEEKDAY () fungsi. Fungsi ini menentukan hari dalam seminggu untuk tarikh tertentu, minggu bermula dengan Ahad. Berdasarkan ini, kami boleh merangka fungsi tersuai yang memenuhi keperluan khusus kami.

Mencipta Fungsi TOTAL_WEEKDAYS():

Kami menubuhkan fungsi bernama TOTAL_WEEKDAYS() yang menerima dua parameter DATE, date1 dan date2. Fungsi ini dengan teliti mengira perbezaan antara hari bekerja, memfaktorkan hari hujung minggu dan kes tepi:

CREATE FUNCTION TOTAL_WEEKDAYS(date1 DATE, date2 DATE)
RETURNS INT
RETURN ABS(DATEDIFF(date2, date1)) + 1  -- Total days
     - ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),  -- Weekdays between
                    ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2
     - (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1)  -- Account for edge case
     - (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7);  -- Account for edge case
Salin selepas log masuk

Penggunaan dan Ujian:

Untuk menggunakan fungsi ini, kami menyediakan dua Pembolehubah DATE, tarikh1 dan tarikh2, yang mana kami ingin mencari perbezaan hari perniagaan. Keluaran akan mengecualikan hujung minggu:

SELECT TOTAL_WEEKDAYS('2013-08-03', '2013-08-21') AS weekdays1,
       TOTAL_WEEKDAYS('2013-08-21', '2013-08-03') AS weekdays2;
Salin selepas log masuk

Keputusan:

| WEEKDAYS1 | WEEKDAYS2 |
-------------------------
|        13 |        13 |
Salin selepas log masuk

Dalam contoh ini, dengan tarikh mula '2013-08-03' dan tarikh tamat '2013-08-21', terdapat 13 hari perniagaan. Fungsi ini dengan tepat mengecualikan hari hujung minggu dalam pengiraannya.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Hari Perniagaan Antara Tarikh dalam MySQL Tidak Termasuk Hujung Minggu?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!