我有一张 table
... | reservation_from | reservation_to | ...
1 | 2016-05-13 10:00:00 | 2016-05-21 10:00:00 | ...
2 | 2016-05-13 20:00:00 | 2016-06-29 14:00:00 | ...
3 | 2016-05-01 10:00:00 | 2016-05-13 16:00:00 | ...
现在我必须在离今天最近的一天进行订购和预订。
例如现在是2016-05-13,所以无论预订是要开始还是要结束,我都必须得到最接近当前时间的结果。我想那样点菜
... | reservation_from | reservation_to | ...
1 | 2016-05-13 10:00:00 | 2016-05-21 10:00:00 | ...
2 | 2016-05-01 10:00:00 | 2016-05-13 16:00:00 | ...
3 | 2016-05-13 20:00:00 | 2016-06-29 14:00:00 | ...
如您所见,第二个结果 reservation_from
是 05-01 但它的 reservation_to
小于第三个 reservation_from
我不知道我是否清楚这个问题,如果没有,请评论我应该详细说明什么。
最佳答案
您想按到现在的较小时差排序:
select *
from mytable
order by
least(abs(timestampdiff(second, now(), reservation_from)),
abs(timestampdiff(second, now(), reservation_to)));
当然,您可以添加更多条件来处理平局。
关于php - MySQL ORDER BY 结合两个最接近今天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37213795/