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

Nhận số ngày trong tuần (Chủ nhật, Thứ Hai, Thứ Ba) giữa hai ngày SQL

Theo những gì tôi nghĩ bạn đang cố gắng đạt được, điều này nên làm:

SET DATEFIRST 1

DECLARE
    @start_date DATETIME,
    @end_date DATETIME

SET @start_date = '2011-07-11'
SET @end_date = '2011-07-22'

;WITH Days_Of_The_Week AS (
    SELECT 1 AS day_number, 'Monday' AS day_name UNION ALL
    SELECT 2 AS day_number, 'Tuesday' AS day_name UNION ALL
    SELECT 3 AS day_number, 'Wednesday' AS day_name UNION ALL
    SELECT 4 AS day_number, 'Thursday' AS day_name UNION ALL
    SELECT 5 AS day_number, 'Friday' AS day_name UNION ALL
    SELECT 6 AS day_number, 'Saturday' AS day_name UNION ALL
    SELECT 7 AS day_number, 'Sunday' AS day_name
)
SELECT
    day_name,
    1 + DATEDIFF(wk, @start_date, @end_date) -
        CASE WHEN DATEPART(weekday, @start_date) > day_number THEN 1 ELSE 0 END -
        CASE WHEN DATEPART(weekday, @end_date)   < day_number THEN 1 ELSE 0 END
FROM
    Days_Of_The_Week


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gọi thủ tục được lưu trữ với giá trị trả về

  2. Hiểu SQL Server Lockdown để Bảo mật Môi trường Cơ sở dữ liệu

  3. SQL Server chứa chức năng văn bản đầy đủ không trả lại kết quả mong đợi

  4. Tạo một cột được tính toán trong SQL Server 2008

  5. Sử dụng SSDT, làm cách nào để giải quyết lỗi SQL71561 khi tôi có dạng xem tham chiếu đến các đối tượng trong cơ sở dữ liệu khác?