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

Barbara Streisand
Lepaskan: 2024-11-02 04:16:02
asal
538 orang telah melayarinya

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>
Salin selepas log masuk

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.
    Salin selepas log masuk
  • (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!

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!