Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengira Bilangan Hari Minggu Antara Dua Tarikh dalam MySQL?

Bagaimana untuk Mengira Bilangan Hari Minggu Antara Dua Tarikh dalam MySQL?

Barbara Streisand
Barbara Streisandasal
2024-11-02 04:16:02539semak imbas

How to Calculate the Number of Weekdays Between Two Dates in MySQL?

Mengira Hari antara Tarikh Tidak Termasuk Hujung Minggu (MySQL)

Menentukan perbezaan antara dua tarikh dalam MySQL adalah mudah menggunakan fungsi DATEDIFF(). Walau bagaimanapun, jika anda perlu mengecualikan hujung minggu daripada pengiraan, pendekatan yang lebih khusus diperlukan.

Untuk mencapai ini, pertimbangkan untuk menggunakan fungsi MySQL berikut:

<code class="mysql">CREATE FUNCTION TOTAL_WEEKDAYS(date1 DATE, date2 DATE)
RETURNS INT
RETURN ABS(DATEDIFF(date2, date1)) + 1
     - ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),
                    ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2
     - (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1)
     - (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7);</code>

Fungsi ini mengambil masa dua tarikh sebagai input dan mengembalikan bilangan hari antara mereka, tidak termasuk hujung minggu (iaitu, Sabtu dan Ahad).

Berikut ialah pecahan komponennya:

  • ABS(DATEDIFF(date2, date1 )) 1: Mengira perbezaan mutlak antara kedua-dua tarikh, memastikan keputusan yang positif.
  • `ABS(DATEDIFF(ADDDATE(tarikh2, INTERVAL 1 - DAYOFWEEK(date2) DAY),

                  ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2`: Calculates the number of weekend days between the two dates.
  • (DAYOFWEEK(JIKA(tarikh1 < tarikh2, tarikh1, tarikh2)) = 1): Semak sama ada tarikh pertama ialah hari Isnin.
  • (DAYOFWEEK(JIKA(tarikh1 > date2, date1, date2)) = 7): Menyemak sama ada tarikh kedua ialah hari Ahad.

Dengan menggabungkan komponen ini, fungsi menyediakan pengiraan tepat bagi bilangan hari antara dua tarikh, tidak termasuk hujung minggu.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Bilangan Hari Minggu Antara Dua Tarikh dalam MySQL?. 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