Mengira Hari Perniagaan Antara Tarikh dalam Pelayan SQL
Menentukan bilangan hari perniagaan (Isnin-Jumaat) dengan cekap antara dua tarikh adalah penting untuk kebanyakan aplikasi SQL Server. Ini boleh dicapai menggunakan ungkapan T-SQL yang ringkas. Formula berikut menganggap minggu kerja Isnin-Jumaat standard:
<code class="language-sql">SELECT (DATEDIFF(day, @StartDate, @EndDate) + 1) - (DATEDIFF(week, @StartDate, @EndDate) * 2) - CASE WHEN DATENAME(weekday, @StartDate) = 'Sunday' THEN 1 ELSE 0 END - CASE WHEN DATENAME(weekday, @EndDate) = 'Saturday' THEN 1 ELSE 0 END</code>
Di sini, @StartDate
dan @EndDate
mewakili tarikh mula dan tamat. Pengiraan mula-mula mencari jumlah hari, kemudian menolak hari hujung minggu. Ia juga mengendalikan kes tepi di mana tarikh mula ialah hari Ahad atau tarikh tamat ialah hari Sabtu.
Sebagai contoh, dengan @StartDate = '2008/10/01'
dan @EndDate = '2008/10/31'
, ungkapan tersebut menghasilkan:
<code>(DATEDIFF(day, '2008/10/01', '2008/10/31') + 1) - (DATEDIFF(week, '2008/10/01', '2008/10/31') * 2) - CASE WHEN DATENAME(weekday, '2008/10/01') = 'Sunday' THEN 1 ELSE 0 END - CASE WHEN DATENAME(weekday, '2008/10/31') = 'Saturday' THEN 1 ELSE 0 END</code>
Ini menghasilkan 21, mewakili 21 hari perniagaan antara tarikh yang diberikan.
Ingat: Pengiraan ini tidak mengambil kira cuti umum. Untuk penyelesaian yang lebih komprehensif termasuk hari cuti, pertanyaan yang lebih canggih melibatkan jadual percutian diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Bilangan Hari Kerja Antara Dua Tarikh dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!