MYSQL从最接近当前日期的可用日期范围中选择日期

时间:2011-08-12 07:34:13

标签: mysql date syntax range

我有一个关于MYSQL查询的问题,以及我如何处理获取当前日期的最近日期范围...

所以我有id,from_date,until_date形式的记录。

鉴于当前日期,我想选择不仅包括当前日期的记录,而且如果有多个记录满足要求,那么其记录的日期和当前日期最接近当前日期日期,例如:

如果:

record1: from_date1, until_date1
record2: from_date2, until_date2

from_date1 <= current_date <= until_date1
from_date2 <= current_date <= until_date2

from_date1 >= from_date2 and until_date1 <= until_date2
应该选择

record1 ......

我正在寻找一种选择查询语法来实现这一目标......

我希望我的榜样足够清楚......任何帮助都会非常感激!

谢谢! :)

彼得。

1 个答案:

答案 0 :(得分:2)

SELECT from_date, until_date
    FROM table
    WHERE current_date BETWEEN from_date
        AND until_date
    ORDER BY TIMESTAMPDIFF(SECOND, from_date, until_date)
    LIMIT 1

选择符合条件的所有记录;最后一个不符合100% - 如果from_date2非常接近current_date,但until_date2距离那么远,那么时间跨度会更大?