Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Hitung semua hari Minggu, Senin ... Sabtu antara dua hari di SQL Server

Saya rasa kueri Anda memberikan hasil yang benar tetapi dapat disederhanakan sedikit.

Namun itu tergantung pada SET DATEFIRST pengaturan.

datepart(dw,[Date]) = 1 akan menghitung jumlah hari Senin jika SET DATEFIRST adalah 1.

Coba ini:

set datefirst 7 -- Sunday
select datepart(dw, '20111227')
set datefirst 1 -- Monday
select datepart(dw, '20111227')

Hasil:

-----------
3

-----------
2

Pembaruan: Kueri lain yang melakukan hal yang sama.

select count(*) as Daycount
from master..spt_values as Number
where Number.type = 'P' and
      dateadd(day, Number.number, @StartDate) <= @EndDate and
      datepart(dw, dateadd(day, Number.number, @StartDate)) = 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Perhitungan dengan literal numerik

  2. Bagaimana cara mengubah bahasa dan format tanggal di SQL Server?

  3. Bagaimana menghubungkan ke database dari Unity

  4. OPSI (REKOMPILASI) Selalu Lebih Cepat; Mengapa?

  5. Daftar Fungsi Tanggal dan Waktu di SQL Server (T-SQL)