选择WHERE日期大于当前日期

时间:2010-09-02 20:56:13

标签: database mysql

我有以下查询:

SELECT id
FROM auctions
WHERE end_dt > TIME_TO_SEC(TIMEDIFF(end_dt, now())) > '0'
GROUP BY auctions.id
ORDER BY end_dt ASC
LIMIT 15

这真的很慢。但基本上,我们试图通过检查剩余秒数是否大于零来选择即将“结束”的最近15条记录。

我认为我过度复杂了,并认为我可以这样做:

SELECT id
FROM auctions
WHERE end_dt > now()
GROUP BY auctions.id
ORDER BY end_dt ASC
LIMIT 15

但是,这会返回不同的结果。

有没有人有更好的解决方案?

谢谢!

2 个答案:

答案 0 :(得分:2)

尝试

WHERE `end_dt` BETWEEN DATE_SUB(NOW() , INTERVAL 15 MINUTE)
                           AND NOW()

来源:MySQL Select rows where timestamp column between now and 10 minutes ago

答案 1 :(得分:0)

好吧,通过做end_dt>结果是正确的。 now() - 插入了很多记录,它甚至在重试之间的几秒钟内也发生了变化..