【发布时间】:2020-07-02 11:43:10
【问题描述】:
我有一个名为 WorkDuration 的简单表,其中包含来自 varchar 类型的字段 WorkedHour。
例如:
WorkedHour:
04:23
08:15
02:00
现在我想要 WorkDuration 中的 sum(WorkedHour)。
为此,我尝试了以下代码行来获取有效但不正确的总持续时间。
database.ExecuteScalarAsync<int?>("SELECT SUM(WorkedHour) FROM WorkDuration WHERE WorkedHour > 0");
那么我怎样才能将所有 WorkedHour's 列相加得到总持续时间,如下所示:
WorkedHour:
04:23
08:15
02:00
-----------
Total: 14:38 Hours
如果有人可以帮助我,我会很高兴。
提前致谢。
【问题讨论】:
-
WorkedHour 的数据类型是什么?
-
SQLite 不能很好地完成
DateTime。事实上,SQLite 甚至没有DateTime数据类型。我的建议是返回所有时间值,然后使用 C# 的强大功能并在代码中进行计算。 -
@Jason WorkedHour 字段为 varchar 类型。
-
那是一个字符串。您不能在字符串上使用 SUM。您可以想象将数据解析出来并将其转换为 SQL,但在您的应用程序代码中执行此操作会容易得多。还可以考虑修改您的数据库以将此数据存储为包含分钟的单个 int 字段。
标签: c# sqlite xamarin.forms