Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengira Bilangan Hari Selasa Antara Dua Tarikh dalam TSQL?

Bagaimana untuk Mengira Bilangan Hari Selasa Antara Dua Tarikh dalam TSQL?

Barbara Streisand
Barbara Streisandasal
2024-10-28 20:45:30784semak imbas

How to Calculate the Number of Tuesdays Between Two Dates in TSQL?

Mengira Bilangan Selasa Antara Dua Tarikh dalam TSQL

Menentukan bilangan Selasa antara dua tarikh ialah cabaran biasa dalam pengaturcaraan TSQL. Satu pendekatan yang cekap digariskan oleh t-clausen.dk:

Untuk mengira kejadian setiap hari bekerja:

<code class="tsql">declare @from datetime = '3/1/2013' 
declare @to datetime  = '3/31/2013' 


select 
 datediff(day, -7, @to)/7-datediff(day, -6, @from)/7 AS MON,
 datediff(day, -6, @to)/7-datediff(day, -5, @from)/7 AS TUE,
 datediff(day, -5, @to)/7-datediff(day, -4, @from)/7 AS WED,
 datediff(day, -4, @to)/7-datediff(day, -3, @from)/7 AS THU,
 datediff(day, -3, @to)/7-datediff(day, -2, @from)/7 AS FRI,
 datediff(day, -2, @to)/7-datediff(day, -1, @from)/7 AS SAT,
 datediff(day, -1, @to)/7-datediff(day, 0, @from)/7 AS SUN</code>

Pertanyaan ini mengembalikan bilangan kejadian setiap hari dalam seminggu dalam julat tarikh yang ditentukan. Pengiraan adalah berdasarkan prinsip berikut:

  • Fungsi datediff mengira perbezaan antara dua tarikh dalam hari.
  • Ungkapan -7 mewakili hari Ahad sebelum tarikh mula.
  • Ungkapan -6 mewakili hari Isnin sebelum tarikh mula.
  • Pembahagian mengikut 7 kumpulan hari mengikut minggu.
  • Penolakan bilangan hari dari tarikh mula sehingga hingga hari Isnin sebelum tarikh mula mengira bilangan minggu antara tarikh mula dan tamat.
  • Penolakan bilangan hari dari tarikh tamat sehingga hari dalam minggu sebelum tarikh tamat mengira nombor hari yang tinggal dalam minggu lepas.

Dengan menggunakan kaedah ini, anda boleh menentukan bilangan hari Selasa atau mana-mana hari lain dalam seminggu dengan mudah dalam julat tarikh tertentu.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Bilangan Hari Selasa Antara Dua Tarikh dalam TSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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