Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Bilangan Hari Kerja Antara Dua Tarikh dalam SQL Server?

Bagaimana untuk Mengira Bilangan Hari Kerja Antara Dua Tarikh dalam SQL Server?

Susan Sarandon
Lepaskan: 2025-01-21 23:21:17
asal
447 orang telah melayarinya

How to Calculate the Number of Workdays Between Two Dates in SQL Server?

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

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

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!

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