Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Hari Bekerja Antara Dua Tarikh Menggunakan T-SQL?

Bagaimana untuk Mengira Hari Bekerja Antara Dua Tarikh Menggunakan T-SQL?

Susan Sarandon
Lepaskan: 2025-01-21 23:27:11
asal
663 orang telah melayarinya

How to Calculate Work Days Between Two Dates Using T-SQL?

Mengira Hari Kerja dengan Cekap dalam T-SQL

Menentukan bilangan hari bekerja antara dua tarikh adalah keperluan biasa dalam SQL Server. Ini penting untuk penjadualan projek, pengiraan cuti pekerja dan aplikasi perniagaan lain. Panduan ini menunjukkan pendekatan T-SQL yang mantap.

Penyelesaian T-SQL untuk Pengiraan Hari Kerja

Langkah berikut menggariskan kaedah untuk mengira hari kerja dalam SQL Server menggunakan Transact-SQL (T-SQL):

  1. Pengisytiharan Pembolehubah: Mulakan dengan mengisytiharkan pembolehubah untuk menahan tarikh mula dan tamat.
  2. Tugasan Tarikh: Tetapkan tarikh mula dan tamat anda kepada pembolehubah ini.
  3. Pengiraan Kiraan Hari Kerja: Pengiraan teras menggunakan formula ini:

(DATEDIFF(dd, @StartDate, @EndDate) 1) - (DATEDIFF(wk, @StartDate, @EndDate) * 2)

Formula ini mengira jumlah hari, menolak hari hujung minggu (dua seminggu) dan mengambil kira senario di mana tarikh mula atau tamat jatuh pada hujung minggu.

Contoh Ilustrasi

Mari kita ilustrasikan dengan contoh praktikal:

<code class="language-sql">DECLARE @StartDate DATETIME;
DECLARE @EndDate DATETIME;
SET @StartDate = '2023-03-06';
SET @EndDate = '2023-03-20';

SELECT
    (DATEDIFF(dd, @StartDate, @EndDate) + 1)
    - (DATEDIFF(wk, @StartDate, @EndDate) * 2)
    - (CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)
    - (CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END);</code>
Salin selepas log masuk

Mengendalikan Cuti

Untuk hasil yang lebih tepat, masukkan cuti ke dalam pengiraan:

  1. Penciptaan Jadual Percutian: Cipta jadual untuk menyimpan tarikh cuti untuk tahun yang berkaitan.
  2. Peningkatan Pertanyaan: Ubah suai pertanyaan untuk mengecualikan tarikh cuti daripada kiraan hari kerja dengan menyertai jadual cuti. Ini memerlukan pertanyaan yang lebih canggih, berpotensi menggunakan CTE (Common Table Expression) untuk meningkatkan kebolehbacaan dan kebolehselenggaraan.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Hari Bekerja Antara Dua Tarikh Menggunakan T-SQL?. 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