You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何按from_time与to_time两列升序排序订单

按时间区间排序订单的实现方案

嘿,我明白你需要把订单按照from_time和to_time升序排列,得到1、3、2的结果对吧?这就给你梳理清楚怎么实现:

先确认你的订单表结构

你的订单表字段如下:

id, user_id, from_time, to_time, product_id, quantity, price, created_at, updated_at

现有3条订单数据(简化后)

  • user_id: 1, from_time: 10:00, to_time: 11:00
  • user_id: 2, from_time: 12:00, to_time: 15:00
  • user_id: 3, from_time: 11:00, to_time: 12:00

实现排序的SQL语句

要达成你想要的排序效果,只需要在查询时指定按from_time升序,再按to_time升序排序就行,SQL代码如下:

SELECT * FROM orders
ORDER BY from_time ASC, to_time ASC;

为啥这样排序能得到你要的结果?

咱们来拆解下排序逻辑:

  1. 第一条订单的from_time是10:00,是三个里面最早的起始时间,自然排第一
  2. 第三条订单的from_time是11:00,比第一条晚但比第二条早,所以排第二
  3. 第二条订单的from_time是12:00,是最晚的起始时间,排第三
    刚好就是你期望的1、3、2的顺序~

另外要注意,如果你的from_time和to_time是数据库的时间类型(比如TIME、DATETIME),这个排序会直接生效;如果是字符串类型,只要是HH:MM这种标准的时间格式,排序逻辑也能正常工作哦。

内容的提问来源于stack exchange,提问作者Paul Diamant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:57:30