Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Hari Perniagaan Antara Tarikh dalam MySQL Tidak Termasuk Hujung Minggu?

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

Susan Sarandon
Susan Sarandonasal
2024-11-02 22:39:03513semak imbas

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

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;

Keputusan:

| WEEKDAYS1 | WEEKDAYS2 |
-------------------------
|        13 |        13 |

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!

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