SQL - 按NOW()的升序日期顺序排序

时间:2013-08-28 17:49:19

标签: mysql sql

我正在尝试制定一个看似简单的SQL查询,我在其中连接两个表,并按照其中一列和NOW()的日期差异对结果进行排序。

我正在尝试查询:

SELECT advertise_id, 
       qr_startdate,
       qr_enddate, 
       DATEDIFF(day, NOW(), t1.qr_enddate) AS d 
FROM `adv_qr` t1 
INNER JOIN advertise_table t2 
    ON t1.advertise_id = t2.lid 
ORDER BY t1.d ASC

这似乎应该是正确的,但显然语法中的某些内容是不正确的。我一直在尝试各种各样的组合,但似乎无法让DATEDIFF以我能用它来订购结果的方式返回。

3 个答案:

答案 0 :(得分:6)

SELECT advertise_id, 
       qr_startdate,
       qr_enddate, 
       DATEDIFF(NOW(), t1.qr_enddate) AS d 
FROM `adv_qr` t1 
INNER JOIN advertise_table t2 
    ON t1.advertise_id = t2.lid 
ORDER BY d ASC

答案 1 :(得分:1)

结帐this SQLFiddle

SELECT advertise_id, 
       qr_startdate,
       qr_enddate, 
       DATEDIFF(NOW(), t1.qr_enddate) AS d 
 FROM `adv_qr` t1 
 INNER JOIN advertise_table t2 
    ON t1.advertise_id = t2.lid 
 ORDER BY d ASC

您可以在此处找到MySQL DATEDIFF documentation

答案 2 :(得分:0)

使用直接减法怎么样?

NOW() - t1.qr_enddate

作为排序标准?