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

SQL सर्वर में समय फ़ील्ड का योग कैसे करें

SELECT EmployeeID, minutes_worked = SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs)) 
FROM dbo.table 
-- WHERE ...
GROUP BY EmployeeID;

आप इसे सामने के छोर पर सुंदर स्वरूपित कर सकते हैं। या टी-एसक्यूएल में:

;WITH w(e, mw) AS
(
    SELECT EmployeeID, SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs)) 
    FROM dbo.table 
    -- WHERE ...
    GROUP BY EmployeeID
)
SELECT EmployeeID = e,
  WrkHrs = RTRIM(mw/60) + ':' + RIGHT('0' + RTRIM(mw%60),2)
  FROM w;

हालांकि, आप गलत डेटा प्रकार का उपयोग कर रहे हैं। TIME समय में एक बिंदु को इंगित करने के लिए प्रयोग किया जाता है, अंतराल या अवधि नहीं। क्या उनके काम के घंटों को दो अलग-अलग कॉलमों StartTime . में संग्रहित करने का कोई मतलब नहीं होगा? और EndTime ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं प्राथमिक कुंजी को AUTOINCREMENT के रूप में कैसे बना सकता हूँ?

  2. SQL सर्वर 2017:SSIS के साथ Linux से Salesforce में CSV डेटा आयात करना

  3. मैं डेटा के एक सेट की डीप कॉपी कैसे करूं, और सभी प्रतियों को इंगित करने के लिए FK संदर्भों को कैसे बदलूं?

  4. पहचान (ऑटो-इन्क्रीमेंट) कॉलम के साथ बल्क इंसर्ट

  5. SQL सर्वर पर अद्यतन संग्रहीत प्रो डालें