Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

दो तिथियों के बीच सप्ताह के दिनों (रविवार, सोमवार, मंगलवार) की संख्या प्राप्त करें SQL

मेरे सोचने . को देखते हुए आप प्राप्त करने का प्रयास कर रहे हैं, इसे यह करना चाहिए:

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. SQL में एकाधिक कॉलम अपडेट करें

  2. एक्सएमएल पथ ('') के लिए:विशेष पात्रों से बचना

  3. जॉइन और इनर जॉइन के बीच अंतर

  4. एसक्यूएल सर्वर प्रोफाइलर - केवल एक डेटाबेस से ईवेंट प्रदर्शित करने के लिए ट्रेस कैसे फ़िल्टर करें?

  5. SQL प्रबंधन स्टूडियो 2005 में खोज रहे हैं