Как отобразить часы работы с часами и минутами
Ниже приведен мой запрос и мой код c# проблема в том, что мне нужно отобразить сумму в часах и минутах, но я получаю эту ошибку недопустимое использование агрегатной функции Sum() и типа: String.Как я могу ее решить
CAST(DATEDIFF(Minute,FromDate, ToDate) / 60 AS VARCHAR(5)) + ' Hrs' + ':' + RIGHT('0' + CAST(DATEDIFF(Minute, FromDate, ToDate) % 60 AS VARCHAR(2)), 2) + ' Min' AS 'Hr'
Что я уже пробовал:
Я пытался
var result = Dt.AsEnumerable().Sum(x => Convert.ToInt32(x["Hr"]));
и еще я пытался
dt.Columns.Add("temp", typeof(int), "Convert(Hr, 'System.Int32')"); var str = dt.Compute("Sum(temp)", "Name='a' and Value is not null");но не работает
Maciej Los
На первом Локе, ниже утверждение:
CAST(DATEDIFF(Minute,FromDate, ToDate) / 60 AS VARCHAR(5)) + ' Hrs' + ':' + RIGHT('0' + CAST(DATEDIFF(Minute, FromDate, ToDate) % 60 AS VARCHAR(2)), 2) + ' Min' AS 'Hr'
возвращает строки, подобные этой:
9 Hrs:22 Min
Таким образом, вы не можете просто суммировать значения, хранящиеся в такой строке. Вам нужно удалить "Hrs "и" Min " из этой строки, а затем разделить строку на 2 поля: hours и mins. В конце концов, вы сможете подвести итог!