Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tính toán tất cả các ngày Chủ Nhật, Thứ Hai ... Thứ Bảy giữa hai ngày trong SQL Server

Tôi nghĩ rằng truy vấn của bạn mang lại kết quả chính xác nhưng có thể được đơn giản hóa một chút.

Tuy nhiên, nó phụ thuộc vào ĐẶT DATEFIRST cài đặt.

datepart(dw,[Date]) = 1 sẽ tính số ngày Thứ Hai nếu SET DATEFIRST là 1.

Hãy thử điều này:

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

Kết quả:

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

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

Cập nhật: Một truy vấn khác cũng thực hiện tương tự.

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. Tạo chỉ mục chuỗi với Mã trước tiên

  2. PHP MsSQL PDO hoặc API

  3. SQL đã xảy ra sự cố khi gửi lệnh tới chương trình

  4. SQL Server IF so với IIF ():Sự khác biệt là gì?

  5. Trả lại hạt giống ban đầu của cột danh tính trong SQL Server