Как мы можем вычесть при использовании типа данных varchar(5) в SQL server
StartTimeIn=11: 48 утра,
EndTimeOut =4: 18 вечера,
MealTimeIn=11: 58 утра,
MealTimeOut=12: 15 вечера,
TeaTimeIn= 1: 06 вечера,
Чаепитие=1: 17 вечера,
OtherTimeIn=null,
OtherTimeOut=null,
TimeSpent (StartTimeIn to EndTimeOut) составляет 270 минут
MealBreakTimeSpent (MealTimeIn to MealTimeOut) составляет 17 минут
TeaBreakTimeSpent (TeaTimeIn to TeaTimeOut) составляет 11 минут
OtherBreakTimeSpent(OtherTimeIn to OtherTimeOut) равен null
TotalTimeSpent=242 минуты
Итак, время 4:02,
Я посылаю свой запрос, не могли бы вы, пожалуйста, исправить его.
Что я уже пробовал:
SELECT CONVERT(nvarchar(5), ISNULL( DATEADD(minute, DATEDIFF(minute, StartTimeIn, ISNULL(EndTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30'))), 0),0), 114) - ( CONVERT(nvarchar(5), ISNULL( DATEADD(minute, DATEDIFF(minute, MealTimeIn, ISNULL(MealTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30'))), 0),0), 114) + CONVERT(nvarchar(5), ISNULL( DATEADD(minute, DATEDIFF(minute, TeaTimeIn, ISNULL(TeaTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30'))), 0),0), 114) + CONVERT(nvarchar(5),ISNULL( DATEADD(minute, DATEDIFF(minute, OtherTimeIn, ISNULL(OtherTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30'))), 0),0), 114) ) AS [TimeSpent] from DailyTimeRecord
Типы данных varchar и varchar несовместимы в операторе вычитания.