Настройка на схемата на MS SQL Server 2008 :
CREATE TABLE Table2 ([repID] int, [ClockIn] datetime, [ClockOut] datetime, [TotalHours] varchar(7));INSERT INTO Table2 ([repID], [ClockIn], [ClockOut], [Общо часове]) СТОЙНОСТИ (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 сутринта', '3:42:59 следобед', '7:52:7'), (109145, '8:09:23 сутринта', '3:36:55 следобед', '7:27 :32');
Заявка 1 :
SELECT convert(varchar(8), dateadd(second, SUM(DATEDIFF(SECOND, ClockIn, ClockOut)), 0), 108)from Table2group by repID
<предварителен код>| КОЛОНА_0 |------------| 14:02:04 | Заявка 2 :
изберете sum(datediff(second,ClockIn,ClockOut))/3600 като hours_workedfrom Table2
<предварителен код>| отработени_часове|------------| 38 | Заявка 3 :
изберете sum(datediff(minute, 0, TotalHours)) / 60.0 като hours_workedfrom Table2
<предварителен код>| HOURS_WORKED |----------------| 38 | Тук последното запитване беше взето от отговора на FreeLancers, тъй като исках да разбера дали работи или не.
Тук първо трябва да преобразувате разликата между датата и часа в секунда или минута и след това да преобразувате това време обратно в час.
Надявам се това да помогне.