Я пытаюсь суммировать значения из таблицы данных, созданной из запроса к базе данных.
Время в БД MySQL форматируется как ЧЧ: мм: сс (сс всегда 00)
У меня уже был этот запуск, я просто был недоволен результатом, например, за 25 часов результат привел к 1,01: 00: 00 или 1 дню и 1 часу, когда я хотел получить 25 ч, поскольку он сохранен в базе данных, изменение типа данных в mysql не вариант для меня, так как у меня есть куча calc, которые нуждаются в них как тип данных time.
В настоящее время код больше не может отображать результат в текстовом поле, так как у меня больше, чем ошибка:
"Неправильное использование агрегатной функции Sum () и Type: String."
Насколько я понял, я не могу суммировать строки, только время и числа, однако я мог бы сделать это до форматирования времени, когда оно извлекается из БД.
Я уже несколько дней искал в Google хорошее решение, но единственные варианты, которые я вижу, - это думает, что я уже попробовал самостоятельно (из-за повторного тестирования, только больше ошибок)
Однако вот требуемый фрагмент кода:
MySqlCommand cmddttoday = conn.CreateCommand();
cmddttoday.CommandType = CommandType.Text;
cmddttoday.CommandText = "SELECT day, month, date_format (start, '%H:%i') start, date_format (stop, '%H:%i') stop, date_format (total, '%H:%i') total FROM arbeitszeiten WHERE username = '" + textBoxusername.Text + "' and day = '" + today + "' and month = '" + month + "' and year = '" + thisyear + "'";
cmddttoday.ExecuteScalar();
DataTable dttimetoday = new DataTable();
MySqlDataAdapter datadatoday = new MySqlDataAdapter(cmddttoday);
datadatoday.Fill(dttimetoday);
textBoxtimetoday.Text = dttimetoday.Compute("SUM(total)", "").ToString();
dttimetoday.Columns["day"].ColumnName = "Tag";
dttimetoday.Columns["month"].ColumnName = "Monat";
dttimetoday.Columns["start"].ColumnName = "Arbeit aufgenommen";
dttimetoday.Columns["stop"].ColumnName = "Arbeit abgelegt";
dttimetoday.Columns["total"].ColumnName = "Zeit gesammt";
Имейте в виду, да, это не работает так, но без общего формата в запросе, который он показывает, как описано выше как 1.01: 00: 00
Я был бы очень рад, если бы мы нашли решение этой раздражающей проблемы.
Спасибо за ваши горящие мозги;)