Использование SQL Server 2000
запрос
Select id, CONVERT(char(8), CASE WHEN DateAdd(Day, - DateDiff(Day, 0, OutTime), OutTime) > Normal_Outtime THEN Cast(Normal_Outtime AS datetime) ELSE DateAdd(Day, - DateDiff(Day, 0, OutTime), OutTime) END - CASE WHEN DateAdd(Day, - DateDiff(Day, 0, InTime), InTime) < Normal_Intime THEN Cast(Normal_Intime AS datetime) ELSE DateAdd(Day, - DateDiff(Day, 0, InTime), InTime) END - cast(totalLunchtime AS datetime), 8) ELSE '00:00:00' END AS WorkedTime
from table
Исходя из вышеприведенного запроса, выполнение outtime - intime - totallunchtime
типы данных столбца varchar
Пример
Id |Intime |Outtime |totallunchtime
001 |09:00:00 |21:00:00 |01:00:00
002 |07:00:00 |07:30:00 |01:00:00
003 |00:00:00 |00:00:00 |01:00:00
WorkedTime означает (outtime - Intime - totalLunchtime)
Получение вывода вот так
id |workedtime
001 |11:00:00
002 |23:30:00
003 |23:00:00
Только проблема общего времени, пока минус 00:00:00 дает 23:00:00, а также для персон 002 - 23:30:00 - только 00:30: 00
Ожидаемый результат
id |workedtime
001 |11:00:00
002 |00:23:00
003 |00:00:00
так далее ...,
Нужна помощь по запросу