我有这张桌子
Starting Time Ending Time Charges
1 True 09:00:00 17:00:00 500.00
2 True 17:01:00 18:00:00 1000.00
3 True 18:01:00 08:59:00 2000.00
基本上,上表是根据时间确定将在交货单上打印的费用。如果有人在下午4点到窗口收集交货单,则费用为500.如果他来之后下午6点,收费将是2000。
之前它的工作正常,因为最后的结束时间是晚上11:59。但也有一些2:am的情况报告,所以我必须将最后一次更改为上午8:59。现在事情没有用了
当上次结束时间从晚上11:59更改为上午8:59时,我无法使此查询在上述方案中有效。 ts
是当前时间,即system.datetime.now
db.JobDoDeliveryTimeSlots.FirstOrDefault(m => ts >= m.StartingTime && ts <= m.EndingTime && m.isOrginal == false);
答案 0 :(得分:1)
如果您只想处理日期翻转,请使用以下内容:
access_token
答案 1 :(得分:1)
如果结束时间大于开始时间,那么你假设它是第二天吗?如果是这样,那么也许尝试这样的事情,如果它少于开始时间,我会在结束时间添加一天:
db.JobDoDeliveryTimeSlots.FirstOrDefault(m =>
ts >= m.StartingTime
&& ts <= ((m.EndingTime >= m.StartingTime) ? m.EndingTime : m.EndingTime.AddDays(1))
&& m.isOrginal == false);