我有两个表 TimeSheet 和 TimeRecord。 TimeRecord 具有 TimeSheet 的外键 TimeSheetId。以下时间日志来自TimeRecord,
时间表示例数据:
TimeSheetId, StudentId
187 , 10
196 , 11
195 , 12
TimeRecord 示例数据:
TimeRecordId TimeSheetId TimeIn TimeOut
1 187 8/17/2010 1:06:55 PM 8/17/2010 1:53:49 PM
2 196 8/17/2010 1:31:28 PM 8/17/2010 4:59:58 PM
3 187 8/17/2010 1:51:40 PM 8/17/2010 4:59:02 PM
4 187 8/17/2010 2:13:35 PM 8/17/2010 5:00:08 PM
5 196 8/17/2010 2:19:44 PM 8/17/2010 5:00:14 PM
6 196 8/17/2010 2:23:02 PM 8/17/2010 4:46:00 PM
7 195 8/17/2010 3:04:15 PM 8/17/2010 4:58:34 PM
我想获得每个学生花费的总时间。因此,结果将类似于以下内容:
10 has 10hr 30mn 5sec
11 has 8hr 45mm 23sec
12 has 2hr 33mn 25sec
非常感谢。
最佳答案
您可以简单地从一个日期中减去另一个日期。这会给你一个 TimeSpan目的。然后您可以使用 ToString TimeSpan 对象的方法来显示您希望使用 standard TimeSpan format strings 花费的时间.你可能看起来像这样:
TimeSpan timeSpent = studentTimeRecord.TimeOut - studentTimeRecortd.TimeIn;
string displayTime = timeSpent.ToString("[hh]hr [mm]mn [ss]sec");
更新: 我刚刚意识到我没有解决将学生分组和对分组求和的问题。我会听从 Jon 的回答。
关于c# - 使用 LINQ to SQL 计算日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3503939/