大于等于当前时间的,按离当前时间最近升序排序
小于当前时间的,按离当前时间最远升序排序
上sql
SELECT
l.id,
l.begin_datetime AS liveBeginTime,
l.begin_datetime - CURRENT_DATE() AS sortTwo,
CASE
WHEN l.begin_datetime >= CURRENT_DATE() THEN 0 ELSE 1
END AS sortOne
FROM
test l
WHERE
l.id IN ( '', '', '', '','' )
ORDER BY
sortOne,
sortTwo
结果如图
第一个case计算出离当前日期时间戳之差
第二个case计算出是当前时间之前还是之后
网友评论