Anda mungkin ingin mencoba ini:
-
Hitung jumlah hari kerja (ambil dari di sini )
SELECT 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1)
Ini memberi Anda 261 hari kerja untuk tahun 2012.
-
Sekarang Anda perlu tahu liburan Anda yang bukan di akhir pekan
SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6
Hasil dari ini tergantung pada meja liburan Anda.
-
Kita perlu mendapatkannya dalam satu permintaan:
SELECT 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1) - (SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6)
Ini seharusnya.
Sunting:Harap diperhatikan bahwa ini hanya berfungsi dengan baik jika tanggal akhir Anda lebih tinggi dari tanggal mulai Anda.