MS SQL Server 2008 स्कीमा सेटअप :
CREATE TABLE Table2
([repID] int, [ClockIn] datetime, [ClockOut] datetime, [TotalHours] varchar(7))
;
INSERT INTO Table2
([repID], [ClockIn], [ClockOut], [TotalHours])
VALUES
(109145, '7:50:50 AM', '3:37:16 PM', '7:46:26'),
(109145, '7:52:41 AM', '3:44:51 PM', '7:52:10'),
(109145, '8:42:40 AM', '3:46:29 PM', '7:3:49'),
(109145, '7:50:52 AM', '3:42:59 PM', '7:52:7'),
(109145, '8:09:23 AM', '3:36:55 PM', '7:27:32')
;
क्वेरी 1 :
SELECT convert(varchar(8), dateadd(second, SUM(DATEDIFF(SECOND, ClockIn, ClockOut)), 0), 108)
from Table2
group by repID
परिणाम :
| COLUMN_0 |
------------
| 14:02:04 |
प्रश्न 2 :
select sum(datediff(second,ClockIn,ClockOut))/3600 as hours_worked
from Table2
परिणाम :
| hours_worked|
------------
| 38 |
क्वेरी 3 :
select sum(datediff(minute, 0, TotalHours)) / 60.0 as hours_worked
from Table2
परिणाम :
| HOURS_WORKED |
----------------
| 38 |
यहाँ अंतिम प्रश्न FreeLancers उत्तर से लिया गया है क्योंकि मैं यह जानने के लिए उत्सुक था कि यह काम करता है या नहीं।
यहां, पहले आपको अपने डेटाटाइम अंतर को सेकंड या मिनट में बदलना होगा और फिर उस समय को वापस घंटे में बदलना होगा।
आशा है कि यह मदद करता है।