从“日期时间”列中选择每天的“最小时间”值

野蛮

有一个表(RecordDateTime列):

 20.2.2021 12:54:34
 20.2.2021 13:54:34
 20.2.2021 14:54:34
 20.2.2021 15:54:34
 20.2.2021 16:54:34
 21.2.2021 11:50:00
 21.2.2021 13:54:34
 21.2.2021 14:54:34
 22.2.2021 10:00:00
 22.2.2021 13:54:34
 22.2.2021 14:54:34

我要去接

20.2.2021 12:54:34 
21.2.2021 11:50:00 
22.2.2021 10:00:00

并计算平均时间。

这是我当前的代码:

    public TimeSpan BeginTime(DateTime startDate, DateTime endDate)
    {
            var mainGridInfo = from w in db.LogModel
                               where w.RecordDateTime.Date >= startDate.Date && w.RecordDateTime.Date <= endDate.Date
                               group w by w.RecordDateTime.Date into test
                               select test.OrderByDescending(cs => cs.RecordDateTime.TimeOfDay).FirstOrDefault();

            var minDatesList = mainGridInfo.Select(s => s.RecordDateTime.TimeOfDay).ToList();

            double doubleAverageTicks = minDatesList.Average(timeSpan => timeSpan.Ticks);
            long longAverageTicks = Convert.ToInt64(doubleAverageTicks);

            return new TimeSpan(longAverageTicks);
    }

因此,据我了解,我将按日期分组进行测试,然后按DateTime列的时间部分进行排序,然后采用First或default(以消除可能的异常)。然后我将所有可用值选择到新列表中并计算这些值的平均值?为什么我的代码会产生异常?怎么了?

System.InvalidOperationException:'LINQ表达式'GroupByShaperExpression:KeySelector:rtrim(rtrim(strftime('%Y-%m-%d%H:%M:%f',a.RecordDateTime,'day of day'),' 0'),'。'),ElementSelector:EntityShaperExpression:EntityType:LogModel ValueBufferExpression:ProjectionBindingExpression:EmptyProjectionMember IsNullable:False

.OrderByDescending(cs => cs.RecordDateTime.TimeOfDay)' could not be translated. Either rewrite the query in a form that can be

翻译,或通过插入对“ AsEnumerable”,“ AsAsyncEnumerable”,“ ToList”或“ ToListAsync”的调用来显式切换到客户端评估。有关更多信息,请参见https://go.microsoft.com/fwlink/?linkid=2101038

杰登

尝试以下操作:

            DataTable dt = new DataTable();
            dt.Columns.Add("Date", typeof(DateTime));

            dt.Rows.Add(new object[] {DateTime.ParseExact("20.2.2021 12:54:34", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] {DateTime.ParseExact("20.2.2021 13:54:34", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] {DateTime.ParseExact("20.2.2021 14:54:34", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] {DateTime.ParseExact("20.2.2021 15:54:34", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] {DateTime.ParseExact("20.2.2021 16:54:34", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] {DateTime.ParseExact("21.2.2021 11:50:00", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] {DateTime.ParseExact("21.2.2021 13:54:34", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] {DateTime.ParseExact("21.2.2021 14:54:34", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] {DateTime.ParseExact("22.2.2021 10:00:00", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] {DateTime.ParseExact("22.2.2021 13:54:34", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});
            dt.Rows.Add(new object[] { DateTime.ParseExact("22.2.2021 14:54:34", "dd.M.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)});

            var days = dt.AsEnumerable().GroupBy(x => x.Field<DateTime>("Date").Date).ToList();
            DateTime[] minDate = days.Select(x => x.Min(y => y.Field<DateTime>("Date"))).ToArray();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

每天的小时“结束时间”转换为日期时间值

来自分类Dev

每天的小时“结束时间”转换为日期时间值

来自分类Dev

从日期时间列中选择月份

来自分类Dev

从两列中选择小于的日期时间

来自分类Dev

在日期选择器集中显示时间最大时间和最小时间

来自分类Dev

从Oracle表中选择日期时间值?

来自分类Dev

如何获取在离子的日期时间组件中选择的用户值?

来自分类Dev

如何从 JQuery 中的日期时间输入中选择/使用值?

来自分类Dev

如何在C#日期时间选择器中设置最大时间和最小时间

来自分类Dev

如何在C#日期时间选择器中设置最大时间和最小时间

来自分类常见问题

从带有熊猫的日期时间列中选择行

来自分类Dev

从带有熊猫的日期时间列中选择行

来自分类Dev

Python从日期时间索引中计算每天的小时数

来自分类Dev

Python:每天两个日期时间之间的小时数

来自分类Dev

从mysql查询中选择最小值和该最小值的时间戳

来自分类Dev

Python Pandas根据时间从列中选择值

来自分类Dev

如何在日期时间选择器中选择时间

来自分类Dev

获取每个人每天的最小日期时间的记录

来自分类Dev

从时间戳记SQL中选择日期

来自分类Dev

从时间表中选择日期

来自分类Dev

从时间表中选择日期

来自分类Dev

在表格中选择最小日期值

来自分类Dev

仅从具有日期时间格式的列中选择日期

来自分类Dev

从随机日期时间熊猫列中选择一组连续日期

来自分类Dev

在基于时间间隔的列表中选择值?

来自分类Dev

日期范围选择器为 24 小时范围创建错误的时间值

来自分类Dev

如何基于每天的最大日期时间值过滤数据

来自分类Dev

如何限制引导时间选择器的最小时间和最大时间?

来自分类Dev

Excel日期时间查找最大/最小和最大最小时间跨度

Related 相关文章

  1. 1

    每天的小时“结束时间”转换为日期时间值

  2. 2

    每天的小时“结束时间”转换为日期时间值

  3. 3

    从日期时间列中选择月份

  4. 4

    从两列中选择小于的日期时间

  5. 5

    在日期选择器集中显示时间最大时间和最小时间

  6. 6

    从Oracle表中选择日期时间值?

  7. 7

    如何获取在离子的日期时间组件中选择的用户值?

  8. 8

    如何从 JQuery 中的日期时间输入中选择/使用值?

  9. 9

    如何在C#日期时间选择器中设置最大时间和最小时间

  10. 10

    如何在C#日期时间选择器中设置最大时间和最小时间

  11. 11

    从带有熊猫的日期时间列中选择行

  12. 12

    从带有熊猫的日期时间列中选择行

  13. 13

    Python从日期时间索引中计算每天的小时数

  14. 14

    Python:每天两个日期时间之间的小时数

  15. 15

    从mysql查询中选择最小值和该最小值的时间戳

  16. 16

    Python Pandas根据时间从列中选择值

  17. 17

    如何在日期时间选择器中选择时间

  18. 18

    获取每个人每天的最小日期时间的记录

  19. 19

    从时间戳记SQL中选择日期

  20. 20

    从时间表中选择日期

  21. 21

    从时间表中选择日期

  22. 22

    在表格中选择最小日期值

  23. 23

    仅从具有日期时间格式的列中选择日期

  24. 24

    从随机日期时间熊猫列中选择一组连续日期

  25. 25

    在基于时间间隔的列表中选择值?

  26. 26

    日期范围选择器为 24 小时范围创建错误的时间值

  27. 27

    如何基于每天的最大日期时间值过滤数据

  28. 28

    如何限制引导时间选择器的最小时间和最大时间?

  29. 29

    Excel日期时间查找最大/最小和最大最小时间跨度

热门标签

归档