我正在尝试制定一个看似简单的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
以我能用它来订购结果的方式返回。
答案 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)
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
作为排序标准?