根据当前日期按升序和降序对列进行排序

时间:2013-12-09 04:02:23

标签: mysql date

请帮忙。这是我的mySQL查询

SELECT * 
FROM (`products`)
ORDER BY (
CASE WHEN `ExpiredDate` > NOW() 
THEN 1 
ELSE 0 
END) DESC , `ExpiredDate` ASC

我要将数组结果排序为可用的产品:

12-10-2013
12-15-2013
12-28-2013
12-09-2013 -- Today
12-08-2013
12-04-2013
12-01-2013

但是目前的结果是现在过期的产品按照这样的升序排序:

12-10-2013
12-15-2013
12-28-2013
12-09-2013 -- Today
12-01-2013
12-04-2013
12-08-2013

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

SELECT * FROM products
ORDER BY ExpiredDate < NOW(), ABS(TIMESTAMPDIFF(SECOND, expiredDate, NOW()))

小提琴here

答案 1 :(得分:1)

您应该使用以下查询而不是您的

SELECT * FROM(products) 订购( DATE_FORMAT时的情况(ExpiredDate,'%Y-%m-%d')&gt;现在() 然后1 ELSE 0 END)DESC,ExpiredDate ASC

更多细节可以在 http://www.mysqltutorial.org/mysql-date_format/

相关问题