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

दो तिथियों के बीच माध्यिका ढूँढना SQL Server 2008

अगर आपका मतलब सेट . से है प्रारंभ तिथियों और समाप्ति तिथियों की, फिर उन्हें एक कॉलम में रखें:

WITH t AS (
       SELECT invoice_no, invoice_start_date, invoice_end_date, check_date, status_code,
       FROM INVOICE_HEADER INNER JOIN
            INVOICE_HEADER_CUSTOM
            ON INVOICE_HEADER.invoice_id = INVOICE_HEADER_CUSTOM.invoice_id
       WHERE status_code <> 'REJECTED' AND 
             Check_Date BETWEEN CONVERT(DATETIME, '2014-12-01 00:00:00', 102) AND
             CONVERT(DATETIME, '2014-12-31 00:00:00', 102)
     ), 
     t2 as (
      select d, row_number() over (order by d) as seqnum,
             count(*) over () as cnt
      from (select invoice_start_date as d from t
            union all
            select invoice_end_date as d from t
           ) t
     )
select dateadd(day, datediff(hour, min(d), max(d)) / 2.0, min(d))
from t2
where 2 * seqnum in (cnt, cnt + 1, cnt + 2);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लिंक्ड सर्वर से संग्रहित प्रक्रिया के परिणाम सम्मिलित करना

  2. SQL सर्वर:XML आउटपुट के साथ दो-स्तरीय GROUP BY

  3. Azure डेटा स्टूडियो का उपयोग करके मैक पर SQL सर्वर डेटाबेस को कैसे पुनर्स्थापित करें

  4. समूह बंद संख्या

  5. पता लगाएँ कि क्या तालिका SQL सर्वर (T-SQL) में विभाजित है