【问题标题】:How to find record times between two time spans如何查找两个时间跨度之间的记录时间
【发布时间】:2018-08-28 07:59:03
【问题描述】:

TimeOfDay 是时间跨度。 start_time、end_time 也是时间跨度。如何查找 start_time 和 end_time 之间的记录

exam.tbl_time_slot.Where(t => !t.deleted && dTime.TimeOfDay <= t.start_time && dTime.TimeOfDay >= t.end_time).ToList()

【问题讨论】:

  • 目前你在问:“查找早于(或点)下午 5 点和晚于(或点)晚上 8 点的记录”,我认为任何一条记录都不可能:)
  • 我什么都试过了,有什么解决办法吗?请
  • 反向 = t.start_time && dTime.TimeOfDay
  • 您确定start_timeTimeSpan 而不是DateTime?将4th july 2018 at 10:14 in the morningTime period of 2 minutes 8 seconds 进行比较似乎有点奇怪
  • 糟糕!实际上,网络上的数据库是相同的,有人在我调试时更改了数据。 @JordiJordi 是的,应该是这个。我正在尝试和尝试,所以这就是我发布错误代码的原因。谢谢

标签: c# entity-framework linq lambda


【解决方案1】:
exam.tbl_time_slot.Where(t => !t.deleted && dTime.TimeOfDay >= t.start_time && dTime.TimeOfDay <= t.end_time).ToList()

【讨论】:

    【解决方案2】:

    有两个问题

    首先,正如@Mojtaba 所指出的,您的检查是错误的。 t.start_time 应该小于 TimeOfDay

    exam.tbl_time_slot.Where(t => !t.deleted && dTime.TimeOfDay >= t.start_time && dTime.TimeOfDay <= t.end_time).ToList()
    

    其次,您必须确保 TimeOfDay、start_time 和 end_time 中的 Days 值为 0。否则比较会得出错误的结果。

    请同时检查其他属性,以防它不起作用

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多