Tidak Termasuk Pengiraan Perbezaan Tarikh Hujung Minggu: Penyelesaian MySQL
Untuk mengira dengan tepat perbezaan antara dua tarikh, tidak termasuk hujung minggu, pengguna MySQL sering mencari bimbingan. Fungsi DATEDIFF standard, walaupun berguna untuk perbezaan tarikh asas, gagal apabila hujung minggu perlu ditinggalkan.
Untuk menangani isu ini, fungsi tersuai boleh dibuat menggunakan fungsi WEEKDAY. Begini caranya:
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);
Fungsi ini menggunakan beberapa fungsi MySQL:
Dengan menggabungkan fungsi ini, fungsi TOTAL_WEEKDAYS mengira perbezaan mutlak antara dua tarikh input, menolak bilangan Sabtu dan Ahad dalam rentang dan melaraskan untuk hari pada permulaan dan akhir julat .
Contoh Penggunaan:
Untuk mengira perbezaan antara dua tarikh, tidak termasuk hujung minggu:
SELECT TOTAL_WEEKDAYS('2013-08-03', '2013-08-21') AS weekdays1, TOTAL_WEEKDAYS('2013-08-21', '2013-08-03') AS weekdays2;
Hasil:
| WEEKDAYS1 | WEEKDAYS2 | ------------------------- | 13 | 13 |
Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Tarikh Tidak Termasuk Hujung Minggu dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!